2013-02-12 22 views
27

Burada yeni başlayan biriyim, bu soru için affediyorum, Laravel'de bir klasörde bir dosya oluşturmak için return File::put($path , $data); kullanıyorum. Bu kod parçasını denetleyiciden kullandım $path değerini bilmem gerekiyor.Genel dizin nasıl alınır?

+0

Eğer laravel 3 veya laravel 4 kullanıyorsunuz? – Laurence

+0

I kullanıyorum 4 –

cevap

87

Kullanım Başvuru için public_path()

:

// Path to the project's root folder  
echo base_path(); 

// Path to the 'app' folder  
echo app_path();   

// Path to the 'public' folder  
echo public_path(); 

// Path to the 'storage' folder  
echo storage_path(); 

// Path to the 'storage/app' folder  
echo storage_path('app'); 
+0

Sadece şunu eklemek için 'public_path()' aslında oldukça işe yaramaz- sadece tüm genel dosyalarınızın "public" adlı bir dizinde olduğunu varsayar - bunlar olmasalar bile. Örneğin, her zaman varsayılan "public" dizini "public_html" olarak değiştirmem gerekir (sunucumla uyumlu olarak). Laravel bunu tanımıyor. Bu nedenle, genel dizininizin gerçekte ne olduğu hakkında akıllıca bir karar vermek için buna güvenmeyin. Ben sadece '$ _SERVER [' DOCUMENT_ROOT ']; – Inigo

9

Başvurunuzun tabanını almak için base_path() kullanabilir - sonra sadece sizin ortak klasörü ekleyin:

$path = base_path().'/public'; 
return File::put($path , $data) 

Not: insanlar içine dosya yüklemek için izin konusunda çok dikkatli olun sizin public_html dosyasının kökü. Kendi index.php dosyalarını yüklerlerse, sitenizi ele geçirirler.

+1

laravel içinde tanımlanan base_path .. Ben kullanıyorum bu hatayı undefined işlev çağrılır base_path() –

+0

Evet - helpers.php içinde tanımlanmıştır. L4 uygulamasında test ettim - işe yarıyor. En son L4 yapısını çalıştırdığınızdan emin olun - daha önceki sürümlerde bulunmamış olabilir. – Laurence

10

Bunun biraz geç olduğunu biliyorum, ancak bu bakışla başka biri gelirse, public_path(); Laravel 4'de, destek klasörü see here'daki helper.php dosyasına eklenmiştir. tüm değişkenler için gerek yoktur

$myPublicFolder = public_path(); 
$savePath = $mypublicPath."enter_path_to_save"; 
$path = $savePath."filename.ext"; 
return File::put($path , $data); 

, ama bu sadece bir demonstrasyon amaçlıdır:

3

sizin laravel yapılandırmasındaki Ortak klasör yolunu almak için en iyi yolu fonksiyonudur. Bu yardımcı olur

Umut, GRnGC

İlgili konular