我设置了两个路由,其中一个接受参数,另一个只是一个 URL,该 URL 应该路由到可以创建新用户的表单。但是,当我导航到/users/create 时,我的 getUser 函数似乎正在接收 get 请求并将我发送到我的 user.blade.php 而不是我的 createUser.blade.php。
Route::get('/users/{id}', "UserController@getUser");
Route::get('/users/create', "UserController@createUser");
我在 UserController 中的方法是:
public function createUser(){
//TODO: Handle user creation.
return view('createUser');
}
public function getUser($id){
$user = User::find($id);
return view('userdetails', compact('user'));
}
最佳答案
一个更好更安全的处理方法是
Route::get('/users/{id}', 'UserController@getUser')->where(['id' => '[0-9]+']);
Route::get('/users/create', 'UserController@createUser');
where()
尝试将 id
字段与特定的 regex/regular expression 相匹配。在这种情况下,[0-9]
表示0-9 之间的任何整数 和 +
表示多次 :)
关于php - 路由冲突 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40897021/