6 个回答

这个配置项指的是所有视图文件的相对位置。

比如 view('admin.host'); 获取的就是 resources/views/admin/host.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')

新手上路,请多包涵

如果blade模板放在resouces文件夹外层怎么引用?

新手上路,请多包涵

我在开发过程中把前后台的控制器、路由、中间件、入口文件和模板文件已经完成了分离。已经在多个项目中实践过。虽然还有一些问题,具体可以查看我的博客: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');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题