如何使用 Laravel 5.2 中的资源声明路由

How to declare routes with resources in Laravel 5.2

我在 routes.php laravel

有一些路线
 // 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');

现在,当我访问 url http://localhost/askspidy/admin I want to show login page and it works, but when i access url http://localhost/askspidy/admin/dashboard 时,它应该会转到仪表板,但它只显示登录页面。 我知道这是因为当它在任何 url 中找到 /admin 时,默认情况下它会转到路由

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

我知道它假设 (/admin) 是到控制器的路由,而 (/dashboard) 是在控制器中声明的函数,但我只想要这样的路由,所以有没有其他解决这个问题的方法。

一个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');