Laravel 视图的路由组
Laravel Route Group for Views
我的 Laravel /routes/web.php:
中有以下配置
Route::group(['prefix' => 'admin'], function(){
Route::get('/', function() {
return view('admin.login');
});
});
如果您注意到,我已经提到 view('admin.login')
这个调用 /resources/views/admin/login.blade.php
。到目前为止,这仍然有效。
但是对于这个路线组,我会把我所有的观点都放在里面/resources/views/admin
。因此,我不想在每个视图名称之前使用 admin
。
在 Route::group
级别是否有任何可能的参数,我可以通过该参数定义我的视图的名称空间,以便 Laravel 在 /resources/views/
内的特定目录中搜索我的视图?
您可以使用
View::addNamespace('admin', '/path/to/admin/views');
或 View::addLocation('/path/to/your/admin/views');
在路由文件中指定管理视图文件夹。
使用第一种方法即可
return view('admin::view.name');
并且使用第二种方法,您可以直接使用视图名称,如 return view('view.name');
我遇到了同样的问题并创建了一个有用的辅助函数......
在 app 目录 app\Helpers\functions.php
下添加了一个 helpers 目录
function adminView($file){
return view('foo.' . $file);
}
在composer.json文件中注册了这个文件
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
},
"files": ["app/Helpers/functions.php"]
},
只需 运行 composer dump-autoload
就可以使用这个辅助函数
我的 Laravel /routes/web.php:
中有以下配置Route::group(['prefix' => 'admin'], function(){
Route::get('/', function() {
return view('admin.login');
});
});
如果您注意到,我已经提到 view('admin.login')
这个调用 /resources/views/admin/login.blade.php
。到目前为止,这仍然有效。
但是对于这个路线组,我会把我所有的观点都放在里面/resources/views/admin
。因此,我不想在每个视图名称之前使用 admin
。
在 Route::group
级别是否有任何可能的参数,我可以通过该参数定义我的视图的名称空间,以便 Laravel 在 /resources/views/
内的特定目录中搜索我的视图?
您可以使用
View::addNamespace('admin', '/path/to/admin/views');
或 View::addLocation('/path/to/your/admin/views');
在路由文件中指定管理视图文件夹。
使用第一种方法即可
return view('admin::view.name');
并且使用第二种方法,您可以直接使用视图名称,如 return view('view.name');
我遇到了同样的问题并创建了一个有用的辅助函数......
在 app 目录 app\Helpers\functions.php
function adminView($file){
return view('foo.' . $file);
}
在composer.json文件中注册了这个文件
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
},
"files": ["app/Helpers/functions.php"]
},
只需 运行 composer dump-autoload
就可以使用这个辅助函数