我有Laravel 5.2.45应用程序 . 我有这样的控制器结构:
App
Http
Controllers
Admin
AdminController.php
我在AdminController.php里面
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests;
class AdminController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('is.admin');
}
public function index()
{
return view('admin.home');
}
}
我有这样的视图文件夹结构:
views
admin
home.blade.php
在我的routes.php里面我有
Route::get('/admin/home', 'Admin\AdminController@index');
所以当我输入时,我正试图得到它... / admin / home browser在admin文件夹中显示home.blade.php .
我的routes.php:
Route::auth();
Route::get('/', 'FrontController@index');
Route::get('/home', 'FrontController@index');
Route::get('/add_user', 'FrontController@user');
Route::group(['prefix', 'admin', 'namespace' => 'Admin'], function() {
Route::get('home', 'AdminController@index');
});
3 回答
route definition 中缺少前缀 . 纠正它看起来像这样:
您可以将路由组与命名空间和前缀选项一起使用 .
在这里,
prefix
允许您指定应始终位于组内路由中的URL的开头 . 因此,您放入该组的任何路线都应以admin
开头 .命名空间允许您为引用的控制器指定文件夹/命名空间 . 因此,所有控制器必须位于
App\Http\Controllers\Admin
命名空间和app/Http/Controllers/Admin
文件夹中 .您需要删除前导斜杠,使其变为:
Route::get('admin/home', 'Admin\AdminController@index');