Laravel 5.5更新表单值时出现store方法不存在错误
解决表单提交触发
store方法不存在的问题 这个报错的原因很清晰:你通过Route::resource定义了资源路由,但当前表单的提交方式和URL匹配到了资源路由里的store方法(POST请求到/administrator/myprofile),可你的控制器只实现了update方法,并没有store方法,所以才抛出了这个错误。
你要实现的是更新操作,对应资源路由里的update方法,它的匹配规则是:
- HTTP请求方法:PUT/PATCH
- 请求URL:
/administrator/myprofile/{id}(必须带上要更新的记录ID)
所以你需要修改blade模板里的表单代码,指定正确的请求方法和URL:
方案1:直接指定URL与请求方法
{{ Form::open([ 'url' => 'administrator/myprofile/' . auth()->user()->id, // 替换为实际要更新的用户ID,比如当前登录用户ID 'method' => 'PUT', 'class'=>'form-horizontal' ]) }} // 你的表单字段内容 {{ Form::close() }}
方案2:使用命名路由更优雅(推荐)
资源路由会自动生成命名路由,update方法对应的路由名称是myprofile.update,可以结合路由助手函数生成URL,避免硬编码:
{{ Form::open([ 'route' => ['myprofile.update', auth()->user()->id], // 第二个参数传入要更新的记录ID 'method' => 'PUT', 'class'=>'form-horizontal' ]) }} // 你的表单字段内容 {{ Form::close() }}
修改完成后,表单提交就会触发MyProfileController里的update方法,而不会再去找不存在的store方法了。
内容的提问来源于stack exchange,提问作者Niladri Banerjee - Uttarpara
相关产品推荐
相关产品推荐

