我有一个按钮,当我点击该按钮时,我将user/create
。我无法尝试调试我的show()
函数执行的原因而不是我的创建函数。
// Auth Group
$router->group(['middleware' => 'auth'], function() {
//Users
Route::get('user/{id}', array('before' =>'profile', 'uses'=>'UserController@show'));
});
// Auth and Admin Group
$router->group(['middleware' => ['auth', 'admin']], function() {
Route::get('user/create', array('as'=>'user.create', 'uses'=>'UserController@create'));
});
显然,我设置user/create
来调用创建函数。
显示 - 我不知道为什么要执行此功能。
public function show($id)
{
dd("I'm inside the show function ");
$user = User::findOrFail($id);
return View::make('users.show')
->with('user', $user);
}
创建 - 假设要调用此函数
// Bring up create form for Aveniros user
public function create(){
return View::make('users.create');
}
有人知道为什么吗?
答案 0 :(得分:3)
请注意,/user/create
与路线Route::get('user/{id}', array());
匹配
您可以向用户id
添加costraint,以便只匹配整数:
Route::get('user/{id}', array(
'before' =>'profile',
'uses'=>'UserController@show'
))->where('id', '[0-9]+');
您也可以互换路线的顺序,以便Route::get('/user/create')
首先匹配。
答案 1 :(得分:0)
有趣的事情......这实际上是Laravel 5上Laracasts所涵盖的具体示例。是的,在通配符({id})之前放置非通配符任务(/ create)的路由({id})处理一切,它永远不会进入/创建。