2016-09-27 2 views
1

Я использую laravel form collective для автоматической генерации формы в проекте. я использовал ту же форму для дополнения и обновления с моделью маршрута связыванияавтоматический метод POST или PUT в форме laravel collect

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

и маршрут для этого

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

Это создает автоматические маршруты для метода, как POST для магазина и PUT для обновления

если я использую коллективный коллектив, то по умолчанию метод POST как для магазина, так и для обновления , если я изменю на PUT, тогда он изменился для обоих

мне нужно автоматическое определение метода, как если я использую для магазина, он должен быть POST и PUT если это форма редактирования

мы можем это сделать?

ответ

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 

Это выше будет Automaticlly добавить _method скрытое поле для вашу форму (с значением PUT) при обновлении. Вы должны также разделить на действия (store и update), так как он находится в Laravel Docs около Resource Controller.

+0

да мы можем сделать, как этот также '@if (! Пустой ($ оператор)) <входной тип = имя 'скрытый' = "_ метод" значение = "PUT"/> @endif ' – ddw147

+0

, так это помогает? –

+0

Спасибо, это хорошая ссылка на то, что трудно найти, как передать параметр маршрута при использовании именованного маршрута при использовании laravel html collect. – blamb