如何在Laravel 5.3中使用PUT http动词提交表单

时间:2017-07-01 20:02:09

标签: php laravel rest http

我知道这个问题可能已经提出,但我无法让它发挥作用。如果有人能帮助我,我将非常感激。我安装了集合/表单,但答案也可以是html表单标签。

现在列出我的表格,我的路线和我的例外。

{{ Form::model( array('route' => array('casas.update', 238), 'method' => 'PUT')) }}
  <input type="hidden" name="_method" value="PUT"> 

-

Route::resource('casas', 'CasasController');

异常:  RouteCollection.php第218行中的MethodNotAllowedHttpException:

1 个答案:

答案 0 :(得分:4)

使用普通的html / blade

<form action="{{ route('casas.update', $casa->id) }}" method="post">
    {{ csrf_field() }}
    {{ method_field('put') }}

    {{-- Your form fields go here --}}

    <input type="submit" value="Update">
</form>

Wirth Laravel Collective看起来像

{{ Form::model($casa, ['route' => ['casas.update', $casa->id], 'method' => 'put']) }}
    {{-- Your form fields go here --}}

    {{ Form::submit('Update') }}
{{ Form::close() }}

在这两种情况下,都假设您将模型实例$casa传递到刀片模板

在您的控制器中

class CasasController extends Controller
{
    public function edit(Casa $casa) // type hint your Model
    {
        return view('casas.edit')
            ->with('casa', $casa);
    }

    public function update(Request $request, Casa $casa) // type hint your Model
    {
        dd($casa, $request->all());
    }
}