3

現在Laravel 4を試しており、リソースコントローラーを作成しました。「編集」機能では、「更新」機能に投稿するフォームを作成しています。

フォームの open タグを作成するには、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])しかし、私がこのようにすると、フォームの開始タグにはまったくアクションがありません。

では、フォームアクションを設定する方法を知っている人はいますか? 名前付きルートを使用するのは完璧ですが、アクションをまったく設定できればさらに便利です。

4

2 に答える 2

8

名前付きルート、コントローラー アクション、または単純な URL を使用して、フォーム アクションを設定できます。

名前付きルートを使用して設定するには:

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

コントローラー アクションを使用して設定するには、次のようにします。

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

したがって、キーワード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 に答える