php – Laravel 5路由未定义,而它是?

我对这应该如何工作有点困惑.但我得到一个Route [/ preferences / 1]没有定义错误.

在我的routes.php中,我有:

Route :: patch(‘/ preferences / {id}’,’UserController @ update’);

在视图文件(account / preferences.blade.php)中,我有:

{! Form :: model(Auth :: user(),[‘method’=>’PATCH’,’route’=>’/ preferences /’.Auth :: user() – > id])!!}

我收到错误告诉我路线不存在.我想我误解了关于这个主题的文档,但在我看来,我已经为给定参数的PATCH请求定义了一个路由,并在视图中正确设置了它.

我在这里俯瞰什么?

解决方法:

route()方法,当你做”route’=>时调用’someroute’]在表格开头,想要所谓的命名路线.你给路线一个这样的名字:

Route::patch('/preferences/{id}',[
    'as' => 'user.preferences.update',
    'uses' => 'UserController@update'
]);

也就是说,您将路径的第二个参数设置为一个数组,您可以在其中指定路径名称(as),以及命中路径时的操作(使用).

然后,当您打开表单时,您将调用该路由:

{!! Form::model(Auth::user(), [
    'method' => 'PATCH',
    'route' => ['user.preferences.update', Auth::user()->id]
]) !!}

现在,对于没有参数的路线,你可以做’route’=> ‘routename’,但由于你有一个参数,你可以创建一个数组并按顺序提供参数.

所有这一切,因为您似乎正在更新当前用户的首选项,我建议您让处理控制器检查当前登录用户的ID,并将更新基于此 – 不需要发送id在网址和路由中,除非您的用户还需要更新其他用户的首选项.

上一篇:javascript – 触发相同的位置路线


下一篇:异常详细信息: System.MissingMethodException: 无法创建抽象类。