在更新表单和输入文件时,我遇到了一些问题。这是我正在使用的。
我在laravel 5.1中有一个表单,它有一个post方法和一个隐藏的'Patch'方法。这样可以更新表单中的字段。但是,它介绍时:
<input type="file" id="profile_picture" name="image_url" />
进入表格,我得到一个:
MethodNotAllowedHttpException in RouteCollection.php line 218:
laravel错误。我试过改变了
<input type='hidden' name='_method' value='PATCH'>
PUT,它仍然不喜欢它。
我的表单看起来像这样:
<form action='{{url("profiles/$user->id")}}' method="post" class="form-horizontal" enctype="multipart/form-data">
route资源如下所示:
Route::resource('profiles', 'ProfilesController');
我无法弄清楚我在这里缺少什么...非常感谢任何帮助。
我相信它与您在“action”参数中输入的确切路径有关,该参数与配置文件控制器的更新方法相匹配。
尝试改变
action'{{url("profiles/$user->id")}}'
至
action='{{ route("profiles.update", $user->id) }}'
此外,您可以使用Laravel Collective HTML package来简单地打开和关闭表单。
此外,对于POST请求类型,您需要将CSRF令牌与表单数据一起发送。如果您在视图中使用了laravel blade模板,则可以使用
{{ csrf_field() }}
转化为
<input type="hidden" name="_token" value={{ csrf_token() }}
请参考documentation。