view.php中这个设置怎么改呢?
下列方法是否可行?view.php那边不要动,这个配置项指的是所有视图文件的相对位置。
1.自己设计一套目录结构来完成
2.
public function index()
{
return view('Admin.Nodes.index');
}
3.访问地址
虽然很早的提问了,在这给个解决方案,测试还行。
// 后台的路由组,配一个中间件,使所有的后台控制器,动态修改视图路径:
Route::group(['prefix'=>'admin', 'middleware'=>['auth', SomeNameSpaceHandAdminView::class]], function(){
...
}
// 中间件:
class HandAdminView{
// 运行期设置默认的视图路径
public function handle($request, $next){
$finder = app('view')->getFinder();
$finder->prependLocation(resource_path('views/admin'));
}
}
只要应用了这个中间件,在调用view('some.name')时,会变成view('admin.some.name').就算不存在,也会再按默认的路径加载。
//再者可以使用命名空间:
在中间件添加: view()->addNamespace('admin', [path1,path2]);
view('admin:index')
我在开发过程中把前后台的控制器、路由、中间件、入口文件和模板文件已经完成了分离。已经在多个项目中实践过。虽然还有一些问题,具体可以查看我的博客:Laravel 重构目录分离前台和后台管理
默认情况下,视图文件存储在resources/views文件夹中,如果想引入其他文件夹中的blade模版也是可以的。
<?php
// Add the namespace and a path
View::addNamespace('namespace', '/path/to/other/views');
// 或者 view()->addNamespace(...);
// 像下面这样使用,注意双冒号
view('namespace::admin.index');
view('namespace::posts.edit');
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答670 阅读✓ 已解决
2 回答588 阅读✓ 已解决
这个配置项指的是所有视图文件的相对位置。
比如
view('admin.host');
获取的就是resources/views/admin/host.php
请仔细阅读文档,谢谢。