在我的routes.php 中我有:
Route::patch('/preferences/{id}', 'UserController@update');
在视图文件(account/preferences.blade.php)中我有:
{!! Form::model(Auth::user(), ['method' => 'PATCH', 'route' => '/preferences/' . Auth::user()->id]) !!}
但我收到这个错误:
路线 [/preferences/1] 未定义
调用时也会出现类似的错误route()
直接帮助者:
route('/preferences/' . Auth::user()->id');
我认为我误解了有关此主题的文档,但我已经使用给定参数定义了 PATCH 请求的路由,并在视图中正确设置了它。我在这里忽略了什么?
The route()
方法,当您执行此操作时会调用该方法['route' => 'someroute']
在一个表格中,想要所谓的命名路线。您为路线命名如下:
Route::patch('/preferences/{id}',[
'as' => 'user.preferences.update',
'uses' => 'UserController@update'
]);
也就是说,将路由的第二个参数放入一个数组中,在其中指定路由名称(as
),以及当路线被击中时该怎么做(uses
).
然后,当您打开表单时,调用该路线:
{!! Form::model(Auth::user(), [
'method' => 'PATCH',
'route' => ['user.preferences.update', Auth::user()->id]
]) !!}
现在,对于没有参数的路线,你可以这样做'route' => 'routename'
,但由于您有一个参数,因此您可以创建一个数组并按顺序提供参数。
话虽如此,由于您似乎正在更新当前用户的首选项,我建议您让处理控制器检查当前登录用户的 id,并在此基础上进行更新 - 无需发送 id除非您的用户还需要更新其他用户的首选项,否则在 url 和路线中。 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)