Laravel 4 Form:: открыть набор действий

В настоящее время я пробую Laravel 4 и создал контроллер ресурсов. В функции «редактировать» я создаю форму, которая должна отправляться в функцию «обновления».

Чтобы создать тег открытия формы, я использую функцию Form::open(), которая недавно была добавлена ​​в Laravel 4. Но когда я просто делаю Form::open(), действие формы является текущим URL-адресом, и я не могу понять, как изменить действие.

Я пробовал Form::open('clients/' . $client->id), но это дает мне следующую ошибку:

ErrorException: Catchable Fatal Error: Аргумент 1, передаваемый Illuminate\Html\FormBuilder::open(), должен иметь тип array

Итак, я попробовал Form::open('[clients/' . $client->id). Это не вызывает ошибку, но теперь тег открытия формы:

<form method="POST" action="http://boekhouding.dev/clients/1/edit" accept-charset="UTF-8" clients/1="clients/1">

И я также пробовал это так: Form::open(['action' => 'clients/' . $client->id]) но когда я делаю это так, тег открытия формы не имеет никакого действия.

Итак, кто-нибудь знает, как установить действие формы? Использование именованного маршрута было бы идеально, но было бы неплохо даже иметь возможность установить действие.


person Crinsane    schedule 16.03.2013    source источник


Ответы (2)


Вы можете использовать именованный маршрут, действие контроллера или простой URL-адрес для установки действия формы.

Чтобы установить его через именованный маршрут, используйте:

{{ Form::open(array('route' => array('route_name', $client->id))) }}

Чтобы установить его с помощью действия контроллера, используйте:

{{ Form::open(array('action' => array('ClientController@update', $client->id))) }}

Таким образом, ключевое слово action относится не к параметру action тега формы, а к действию контроллера.

И вы также можете использовать простой URL-адрес, например:

{{ Form::open(array('url' => 'someurl')) }}
person kok    schedule 18.03.2013
comment
как насчет того, чтобы установить действие формы на себя? - person Damon; 30.04.2013
comment
Просто убедитесь, что маршрут указан в файле route.php: {{ Form::open(array('route' =› 'route_name')) }} - person Jazzy; 27.06.2013

@jeffrey_way написал в Твиттере об улучшении нового FormBuilder в Laravel 4. Следующая ссылка на вставку должна помочь. Кажется, это больше о контроллерах RESTful, но актуально.

Разумные значения по умолчанию для действия формы — вставка сегмента

Мне показалось, что я читал что-то о том, что завтра он выпустит учебник по Forms. Если да, то его можно найти здесь net.tutsplus.com/?s=laravel.

person Codeplus    schedule 17.03.2013