我正在使用laravel form collective在项目中自动生成表单。 我使用相同的表单添加和更新路由模型绑定
{!! Form::model($operator, ['route' => ['operator.update', $operator->id]]) !!}
并且路线为
Route::resource('operator','OperatorController');
这会生成方法的自动路由,例如POST
用于商店,PUT
用于更新
如果我使用form collective,那么默认方法是POST
用于存储和更新
如果我改为PUT
,那么两者都改变了
我需要自动方法检测,就像我用于商店一样,如果是编辑形式,它应该是POST
和PUT
我们可以这样做吗?
答案 0 :(得分: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值)。
您还应该拆分行动(store
和update
),因为它在Laravel文档中关于Resource Controller。