php - 路由冲突 Laravel

标签 php laravel model-view-controller routes

我设置了两个路由,其中​​一个接受参数,另一个只是一个 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/

相关文章:

php - 尝试获取非对象 Eloquent 关系的属性

php - laravel 如何在不包含类的情况下扩展类

spring - ModelAndView object.addAttribute() 相当于 request.setAttribute

php - 在 Linux 中终止 php 浏览器请求

php - PHP 中的未定义索引

php - 用php读取pdf文件

javascript - 在 Rails 应用程序上无法看到我使用 google map 添加的位置的 map

php - 将数据库行放入关联数组的简单方法

php - Laravel:无法打开所需文件

javascript - mvc中的过滤选择