WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
Formの開始

Formの開始

このエントリーをはてなブックマークに追加

Formクラスは、HTMLのフォームに関するタグを簡単に生成してくれます。

まず、フォームを開始するには、Formクラスのopenメソッドで開始します。そしてFormクラスのcloseメソッドでフォームを閉じます。

Form::open(属性の配列)

Form::openメソッドの引数は、属性の配列を指定します。デフォルトでは、POSTメソッドが使用されますが、他のメソッドを指定することも出来ます。

urlは、特に指定しなければ、現在のURLが指定されます。

また、名前付きルートやコントローラアクションを指定してフォームを開くことが出来ます。

  • Form::open();
  • Form::open([‘url’=>’user/index’,’method’=>’get’])
  • Form::open([‘route’=>’profile’]);
  • Form::open([‘action’=>’UserController@postCreate’]);

それでは、実際にどのようなHTMLタグを生成するのか試してみましょう。

(例)app/views/user/sample.blade.php

{{Form::open()}}
{{From::text('name')}}
{{From::submit()}}
{{Form::close()}}
  • 下記のようなタグが生成されます。

<form method=”POSTaction=”http://localhost/user/sample” accept-charset=”UTF-8“>
<input name=”_tokentype=”hiddenvalue=”t6E83yJD86k8nCBJpQVo7n0OhUyHMQXuYZRh3l8V“>
<input name=”nametype=”text“>
<input type=”submit“>
</form>

  • 自動的に隠しフィールドが生成されています。詳しくはSCRF対策の箇所でご説明しますが、Laravelでは、デフォルトで自動的にCSRFトークンを隠しフィールドとして生成します。

また、名前付きルートやコントローラアクションを配列で指定することにより、複数のパラメーターを同時に渡すことも出来ます。

{{Form::open(['action'=>['UserController@postCreate',$user->id,$user->name'])}}
{{Form::text('name')}}
{{Form::submit()}}
{{Form::close()}}

上記フォームから送信すると下記のようになります。

laravel052

ファイルを送信する場合は、filesオプションをtrueに指定します。

{{Form::open([‘files’=>true])}}
{{Form::file(‘photo’)}}
{{Form::submit()}}
{{Form::close()}}

‘files’=>trueは、enctype=”multipart/form-data”を生成します。

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です