我的routes.php
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
// Frontend
Route::get('/', 'IndexController@index');
Route::get('/contact', 'UserController@index');
Route::get('home', 'HomeController@index');
Route::get('/articles', 'ArticleController@all');
Route::get('/article/{id}', 'ArticleController@show')
->where('id', '\d+');
Route::get('/messageboard', 'MessageController@messageboard');
// End Of Frontend
// Backend
Route::group(['prefix' => 'admin'], function () {
Route::get('/article/create', 'Backend\PostController@create');
Route::get('/article/edit/{id}', 'Backend\PostController@edit');
Route::get('/signin', 'Backend\UserController@signin');
Route::get('/signup', 'Backend\UserController@signup');
Route::get('/user/{id}', 'Backend\UserController@ucenter');
Route::post('/article/create', 'Backend\PostController@store');
Route::post('/article/edit', 'Backend\PostController@update');
Route::post('/article/del/{id}', 'Backend\PostController@del');
});在添加新文件夹resources/views之前,我将视图的文件放在resource/views/backend中;但是对于前端和后端,我有两个不同的布局,所以我想组织更易读的文件。如下所示:
├── auth
│ ├── login.blade.php
│ ├── password.blade.php
│ ├── register.blade.php
│ └── reset.blade.php
├── backend
│ ├── article_create.blade.php
│ ├── layout.blade.php
│ └── sidebar_menu.blade.php
├── emails
│ └── password.blade.php
├── errors
│ ├── 404.blade.php
│ └── 503.blade.php
├── vendor
├── layout.blade.php
├── article.blade.php
├── articles.blade.php
├── home.blade.php
├── index.blade.php
├── messageboard.blade.php
├── sidebar_menu.blade.php
└── user.blade.php通常我只是@extends('layout'),它在前面工作的很好
前端视图文件被放置在默认位置(
resources/views)
但是,我必须使用@extends('backend.layout')来加载后端的布局!
后端的视图文件放在
resources/views/backend中
那么,有什么方法可以让我只使用@extends('layout')加载后端布局模板吗?
我看到一些代码提到了‘addNamesapce’.
...poor英语..。
编辑也许我可以用另一种方式来实现我的想法。在Laravel5.2中,叶片模板可以使用@extend('layouts.frontend.app')扩展前端模板,@extend('layouts.backend.app')用于后端。
resources/views/layouts/frontend/app.blade.php
resources/views/layouts/backend/app.blade.php这没什么大不了的。
发布于 2015-06-17 11:03:32
我不知道你是否可以按你想的方式做,但是你总是可以编辑config/view.php并将这一行添加到paths数组中:
realpath(base_path('resources/views/backend'))你就可以直接看到这些视图了。缺点是,不能有两个相同名称的视图(必须重命名后端中的视图)。
发布于 2016-06-29 20:10:37
由于view Finder上的视图路径属性是受保护的,因此您需要使用服务容器绑定:
Route::group(['prefix' => 'admin'], function () {
$this->app->bind('view.finder', function ($app) {
$paths = [realpath(base_path('resources/views/admin'))];
return new \Illuminate\View\FileViewFinder($app['files'], $paths);
});
// ...https://stackoverflow.com/questions/30888938
复制相似问题