3

我目前正在尝试 Laravel 4,并且我已经创建了一个资源控制器。在“编辑”功能中,我正在构建一个表单,该表单应该发布到“更新”功能。

为了创建表单打开标签,我使用了Form::open()最近添加到 Laravel 4 中的函数。但是当我只是做Form::open()表单的动作是当前的 url,我不知道如何改变动作。

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

ErrorException:可捕获的致命错误:传递给 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])但是当我这样做时,表单打开标签根本没有任何动作。

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

4

2 回答 2

8

您可以使用命名路由、控制器操作或简单的 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')) }}
于 2013-03-18T00:22:12.070 回答
1

@jeffrey_way 发布了关于改进 Laravel 4 中新的 FormBuilder 的推文。下面的粘贴桶链接应该会有所帮助。它似乎更多的是关于 RESTful 控制器,但相关。

表单操作明智的默认值 - 粘贴桶

我以为我读到了一些关于他明天将推出 Forms 教程的信息。如果是这样,可以在这里找到net.tutsplus.com/?s=laravel

于 2013-03-17T23:50:26.367 回答