Laravel 5 - 休息
Laravel 5 - Rest
早上好,
我正在开发一个 laravel 5 类似社交网络的应用程序,我正在尝试使用 Restfull 控制器,但我发现了一个问题
如何避免用户的资源?
我的意思是,我该怎么做:
Route::resource('{username}', 'UserController');
而不是这个:
Route::resource('user/{username}´, 'UserController');
第一个带我到UserController中的索引方法,但它必须带我显示方法,以{username}作为id参数。
因此我会制作嵌套资源
// 用户照片索引
Route::resource('{username}/photos´, 'UserPhotosController');
// 显示一张照片 (photo_id)
Route::resource('{username}/photos/photo_id´, 'UserPhotosController');
有什么想法吗?
定义时:Route::resource('{username}', 'UserController');
这些是由 Laravel:
生成的路由
| GET|HEAD | {username} | {username}.index | UserController@index |
| GET|HEAD | {username}/create | {username}.create | UserController@create |
| POST | {username} | {username}.store | UserController@store |
| GET|HEAD | {username}/{{username}} | {username}.show | UserController@show |
| GET|HEAD | {username}/{{username}}/edit | {username}.edit | UserController@edit |
| PUT | {username}/{{username}} | {username}.update | UserController@update |
| PATCH | {username}/{{username}} | | UserController@update |
| DELETE | {username}/{{username}} | {username}.destroy | UserController@destroy |
这个table表明/{username}
路由会转到UserController@index
方法。此外,如果您注意到,生成的 show
路由实际上是:
{username}/{{username}}
因此我不建议使用资源路由生成器,如果您以显式方式定义路由则最好。例如:
Route::get('{username}', ['as' => 'username.show', 'uses' => 'UserController@show']);
此外,Laravel 会按照出现的顺序读取路线。定义此类动态路由时,请确保此路由是 route.php 文件中的最后一个路由。示例:
Route::get('about', 'StaticPagesController@about');
Route::get('blog', 'StaticPagesController@blog');
Route::get('contact', 'StaticPagesController@contact');
Route::get('{username}', ['as' => 'username.show', 'uses' => 'UserController@show']);
早上好, 我正在开发一个 laravel 5 类似社交网络的应用程序,我正在尝试使用 Restfull 控制器,但我发现了一个问题
如何避免用户的资源?
我的意思是,我该怎么做:
Route::resource('{username}', 'UserController');
而不是这个:
Route::resource('user/{username}´, 'UserController');
第一个带我到UserController中的索引方法,但它必须带我显示方法,以{username}作为id参数。
因此我会制作嵌套资源 // 用户照片索引
Route::resource('{username}/photos´, 'UserPhotosController');
// 显示一张照片 (photo_id)
Route::resource('{username}/photos/photo_id´, 'UserPhotosController');
有什么想法吗?
定义时:Route::resource('{username}', 'UserController');
这些是由 Laravel:
生成的路由| GET|HEAD | {username} | {username}.index | UserController@index |
| GET|HEAD | {username}/create | {username}.create | UserController@create |
| POST | {username} | {username}.store | UserController@store |
| GET|HEAD | {username}/{{username}} | {username}.show | UserController@show |
| GET|HEAD | {username}/{{username}}/edit | {username}.edit | UserController@edit |
| PUT | {username}/{{username}} | {username}.update | UserController@update |
| PATCH | {username}/{{username}} | | UserController@update |
| DELETE | {username}/{{username}} | {username}.destroy | UserController@destroy |
这个table表明/{username}
路由会转到UserController@index
方法。此外,如果您注意到,生成的 show
路由实际上是:
{username}/{{username}}
因此我不建议使用资源路由生成器,如果您以显式方式定义路由则最好。例如:
Route::get('{username}', ['as' => 'username.show', 'uses' => 'UserController@show']);
此外,Laravel 会按照出现的顺序读取路线。定义此类动态路由时,请确保此路由是 route.php 文件中的最后一个路由。示例:
Route::get('about', 'StaticPagesController@about');
Route::get('blog', 'StaticPagesController@blog');
Route::get('contact', 'StaticPagesController@contact');
Route::get('{username}', ['as' => 'username.show', 'uses' => 'UserController@show']);