我试图弄清楚是否有一种方法可以将URL参数添加到Route :: controller调用中。
我的控制面板目前有:
Route::group(
[
'prefix' => 'admin',
'namespace' => 'Admin'
],
function() {
Route::group(
[
'prefix' => '',
'before' => 'auth.admin'
],
function() {
Route::controller('page', 'PageController');
Route::controller('article', 'ArticleController');
}
);
Route::controller('/', 'LoginController');
}
);
现在 - 每个控制器都有post / getEdit操作,这需要以id
的简单格式传递url /admin/page/edit/{id}
参数。
我的问题是 - 有没有办法可以在Route :: controller方法中添加一些参数,还是我必须使用Route::get
/ Route::post
方法完成所有这些?
我知道我可以通过在给定的控制器调用之上添加两个get
和post
的额外案例来实现:
Route::group(
[
'prefix' => 'admin',
'namespace' => 'Admin'
],
function() {
Route::group(
[
'prefix' => '',
'before' => 'auth.admin'
],
function() {
Route::get('page/edit/{id}', 'PageController@getEdit');
Route::post('page/edit/{id}', 'PageController@postEdit');
Route::controller('page', 'PageController');
Route::controller('article', 'ArticleController');
}
);
Route::controller('/', 'LoginController');
}
);
但也许有更好的方法?
答案 0 :(得分:1)
您可以使用Route::resource
:
Route::resource('resource', 'ResourceController');
这将注册以下路线:
GET /resource index resource.index
GET /resource/create create resource.create
POST /resource store resource.store
GET /resource/{resource} show resource.show
GET /resource/{resource}/edit edit resource.edit
PUT/PATCH /resource/{resource} update resource.update
DELETE /resource/{resource} destroy resource.destroy
您可以与only
或except
一起使用,以选择要包含(或排除)的路线:
Route::resource('resource', 'ResourceController', ['only' => ['index', 'show', 'update', 'destroy']]);
在Laravel documentation中阅读有关restful资源控制器的更多信息。
这篇文章也可能很有趣:Laravel 4 - Route::resource vs Route::controller. Which to use?