【问题标题】:automatic method POST or PUT in laravel form collectivelaravel 形式的自动方法 POST 或 PUT 集体
【发布时间】:2016-09-27 06:13:36
【问题描述】:

我正在使用laravel form collective 在项目中自动生成表单。 我使用相同的表单来添加和更新路由模型绑定

{!!  Form::model($operator, ['route' => ['operator.update', $operator->id]])  !!}

这个路线是

 Route::resource('operator','OperatorController');

这会为诸如POST 用于存储和PUT 用于更新的方法生成自动路由

如果我使用表单集合,那么默认方法是 POST 用于存储和更新 如果我更改为PUT,那么两者都更改了

我需要自动方法检测,比如我用于商店,如果是编辑表单,它应该是POSTPUT

我们可以这样做吗?

【问题讨论】:

    标签: php forms laravel-5 laravelcollective


    【解决方案1】:

    如果你想检测这两种情况,你应该使用Form::open作为创建模式和Form::model作为更新模式(使用方法PUT),如下所示:

    @if(!empty($operator))
        {!!  Form::model($operator, ['route' => ['operator.update', $operator->id], 'method' => 'PUT'])  !!}
    @else
        {!!  Form::open(['route' => ['operator.store', $operator->id]])  !!}
    @endif
    

    以上内容将在更新时自动将_method 隐藏字段添加到您的表单(带有 PUT 值)。 您还应该拆分为操作(storeupdate),因为它在 Laravel 文档中关于 Resource Controller

    【讨论】:

    • 是的,我们也可以这样做@if(!empty($operator)) <input type='hidden' name="_method" value="PUT" /> @endif
    • 这有帮助吗?
    • 谢谢,这是一个很好的参考,否则很难找到,如何传递路由参数,使用命名路由时,使用 laravel html 集合时。
    猜你喜欢
    • 2014-08-14
    • 1970-01-01
    • 2019-03-22
    • 2020-07-01
    • 2015-06-03
    • 2019-07-22
    • 2017-02-17
    • 2020-11-08
    • 1970-01-01
    相关资源
    最近更新 更多