您有两种方法可以实现目标.首先,我们来看看app / config / view.php.这就是定义视图加载的路径的位置.
这是默认值:
'paths' => array(__DIR__.'/../views'),
方法1:加载两个目录
您可以轻松地将管理目录添加到阵列
'paths' => array(
__DIR__.'/../views',
__DIR__.'/../admin/views
),
现在最大的缺点是:视图名称必须是唯一的.否则,将首先指定路径中的视图.
由于您不想使用视图命名空间,我认为您不需要像admin.viewname这样的语法.你可能更喜欢方法2;)
方法2:在运行时更改视图页面
可以使用Config :: set方法在运行时更改每个Laravel配置.
Config::set('view.paths', array(__DIR__.'/../admin/views'));
显然设置配置不会改变任何东西,因为它在应用程序引导时被加载并在之后被忽略.
要在运行时更改路径,您必须创建FileViewFinder的新实例.
这是这样的:
$finder = new \Illuminate\View\FileViewFinder(app()['files'], array(app_path().'/admin/views'));
View::setFinder($finder);
方法3:使用addLocation但没有默认路径
您还可以删除app / config / view.php中的默认路径
'paths' => array(),
然后在任何情况下使用View :: addLocation(前端和管理员)
View::addLocation(app_path().'/views');
View::addLocation(app_path().'/admin/views');