Route::get('post/form/{id}', array('as' => 'admin.post.delete', 'uses' => "PostController@deleteForm"));
Route::get('post/form', array('as' => 'admin.post.create', 'uses' => "PostController@createForm"));
我想在一个路由中组合上面的两个路由来创建和删除两个函数。因为这两条路线只有不同的id
。
Route::get('post/form/{id}', array('as' => 'admin.post', 'uses' => "PostController@getForm"));
如果我想在没有id
的情况下输入,它会重定向到创建功能。如果我使用id
键入,则会重定向到删除功能。
如何为两个功能使用一个路由?
答案 0 :(得分:1)
正如詹姆斯所说,这不太实际,但你可以通过以下方式实现这一点。
Laravel为您提供了定义可选路线参数的可能性,如下所示。
Route::get('user/{name?}', function ($name = null) {
return $name;
});
Route::get('user/{name?}', function ($name = 'John') {
return $name;
});
关于路线参数的Laravel文档:Laravel Route Parameters
所以这意味着你可以像这样制作你的路线。
Route::get('post/form/{id?}', array('as' => 'admin.post', 'uses' => "PostController@getForm"))
在您的控制器中,您需要检查“ID”是否包含'存在。如果没有,则创建用户。如果' id'出现删除用户。
答案 1 :(得分:1)
您无法使用1种路线进行2种方法。 解决方案是使用1种方法来激发具体方法,例如
routes.php文件
get('post/form/{id?}', 'PostConteoller@form');
PostController.php
public function form($id = null) {
return $id ? $this->deleteForm($id) : $this->createForm();
}
然而,使用2条路线要简单得多。