如何在Laravel 5.2中声明具有资源的路由

时间:2016-06-20 10:45:43

标签: laravel laravel-routing

我在laravel中的routes.php中有一些路由

 // Code for rounting admin panel
 Route::resource('/admin','Admin\LoginController@index');
 Route::resource('/admin/dashboard','Admin\AdminController@index');
 Route::resource('/admin/movies','Admin\MovieController@index');

现在,当我访问网址http://localhost/askspidy/admin时,我想要显示登录页面并且它可以正常工作,但是当我访问网址http://localhost/askspidy/admin/dashboard时,它应该转到信息中心,但它只显示登录页面。 我知道这是因为当它在任何网址中发现/ admin时,默认情况下都是路由

 Route::resource('/admin','Admin\LoginController@index');

我知道假设(/ admin)是路由到控制器而且(/ dashboard)是在控制器中声明的函数但是我想要这样的路由只有这样才能解决这个问题。

1 个答案:

答案 0 :(得分:1)

RESTful Resource Controller接管每项行动的责任。您只需要列出名称和控制器:

Route::resource('photo', 'PhotoController');

如果您只想使用index方法,请按以下方式列出:

Route::resource('photo', 'PhotoController', ['only' => [
    'index'
]]);

但是,看起来您的两条路线不适合资源(登录和仪表板),因为它们应与编辑模型有关。

您应该改为使用get()资源。

From the docs

Route::get('user/{id}', 'UserController@showProfile');

所以在你的情况下,它将是:

Route::get('/admin','Admin\LoginController@index');
Route::get('/admin/dashboard','Admin\AdminController@index');
Route::resource('/admin/movie','Admin\MovieController');