2017-10-19 77 views
0

的文件夾名稱我有/app/resources/views/category/index.blade.php獲取laravel視圖

而在index.blade.php我想知道,這是在文件夾「類別」。是否有返回當前視圖路徑的laravel函數?

喜歡的東西:

$folder = view_path(); // "/category" 
+1

PHP本身就支持'__FILE__ '和'__DIR__' – Devon

+2

在這種情況下,__FILE__和__DIR__不起作用。他們返回總是返回存儲/視圖緩存目錄 –

+2

啊,好的。這是合理的,因爲刀片視圖被編譯。 – Devon

回答

0

在類的頂部添加命名空間:use Illuminate\Support\Facades\File; 運行:

$files = File::allFiles(resource_path('views')); 

    foreach ($files as $file) { 
    echo (string) $file, "\n"; 
    } 

或您的情況:

$files = File::files(resource_path('views/category')); 

foreach ($files as $path => $value) { 
    echo $value->getPath() . "\n"; 
} 
0

您可以使用Laravel View Composers

視圖作曲者是在呈現 視圖時調用的回調函數或類方法。如果每次渲染視圖時都希望綁定到視圖 的數據,則視圖編輯器可以幫助您將該邏輯組織到一個位置。

在文件app/Providers/AppServiceProvider.php,編輯public function boot()方法

/** 
* Bootstrap any application services. 
* 
* @return void 
*/ 
public function boot(Application $app) 
{ 

    view()->composer('*', function($view) { 
     // get view paths from config - this is absolute path 
     $configPaths  = config('view.paths'); 

     // get view's full path 
     $absoluteViewPath = $view->getPath(); 

     foreach($configPaths as $configPath) { 
     // see if current view's path matches path from config 
     // both are absolute paths 
     if (strpos($absoluteViewPath, $configPath) !== false) { 
      $path = str_replace($configPath, '', $absoluteViewPath); 

      // remove view name - from last position of `/` 
      $dir = substr($path, 0, strrpos($path, '/')); 

      // attach to views 
      view()->share('view_folder', $dir); 

      // view matched, stop looking 
      break; 
     } 

     } 

     // if nothing was found 
     view()->share('view_folder', ''); 
    }); 
} 

在此之後,在任何刀片模板你現在將有機會獲得一個變量

{{ $view_folder }}