maa*_*ten 7 laravel laravel-4 laravel-routing
我试图允许用户编辑他们的播放列表.但是,每当我尝试执行PATCH请求时,都会收到MethodNotAllowedHttpException错误.(它期待一个POST)
我已经设置了RESTful资源控制器:
routes.php文件:
Route::resource('users', 'UsersController');
Route::resource('users.playlists', 'PlaylistsController');
Run Code Online (Sandbox Code Playgroud)
这应该让我访问:(通过php artisan路线显示)
URI | Name | Action
PATCH users/{users}/playlists/{playlists} | users.playlists.update | PlaylistsController@update
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试执行以下表单时,我得到MethodNotAllowedHttpException错误:
/用户/ TESTUSER /播放/ 1 /编辑
{{ Form::open(['route' => ['users.playlists.update', $playlist->id], 'method' => 'PATCH' ]) }}
{{ Form::text('title', $playlist->title) }}
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)
如果我删除'method'=> 'PATCH'我没有得到错误,但它执行我public function store()而不是我的public function update()
Ale*_*mia 14
写完{!! method_field('patch') !!}表格后:
<form method="POST" action="patchlink">
{!! method_field('patch') !!}
. . .
</form>
Run Code Online (Sandbox Code Playgroud)
由于html表单仅支持GET,因此POST您需要在调用的表单中添加额外的隐藏字段_method以模拟PATCH请求
<input type="hidden" name="_method" value="PATCH">
Run Code Online (Sandbox Code Playgroud)
在Laravel 5及更高版本中:
<form method="POST" action="patchlink">
@method('patch')
. . .
</form>
Run Code Online (Sandbox Code Playgroud)
正如@Michael A 在上面的评论中所建议的,将其作为 POST 发送
<form method="POST" action="patchlink">
<input type="hidden" name="_method" value="PATCH">
Run Code Online (Sandbox Code Playgroud)
为我工作。
| 归档时间: |
|
| 查看次数: |
13644 次 |
| 最近记录: |