Laravel 4 Form :: open set action

Cri*_*ane 2 php forms action laravel laravel-4

我正在尝试Laravel 4,我已经创建了一个资源控制器.在"编辑"功能中,我正在构建一个表单,该表单应该发布到"更新"功能.

要创建表单打开标记,我使用Form::open()最近添加到Laravel 4 的函数.但是,当我只是做Form::open()表单的动作是当前的URL,我无法弄清楚如何更改动作.

我试过Form::open('clients/' . $client->id)但这给了我以下错误:

ErrorException:Catchable Fatal Error:传递给Illuminate\Html\FormBuilder :: open()的参数1必须是类型数组

所以我试过了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])但是当我这样做时,表单打开标签根本就没有动作.

那么,有没有人知道如何设置表单操作?使用命名路线将是完美的,但即使能够设置动作也会很好.

小智 8

您可以使用命名路由,控制器操作或简单URL来设置表单操作.

要通过命名路由设置它:

{{ Form::open(array('route' => array('route_name', $client->id))) }}
Run Code Online (Sandbox Code Playgroud)

要通过控制器操作设置它,请使用:

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

因此,关键字action不会影响表单标记的"action"参数,而是依赖于控制器操作

你也可以像这样使用普通的URL:

{{ Form::open(array('url' => 'someurl')) }}
Run Code Online (Sandbox Code Playgroud)