目次

【Laravel】Form ファサードを使った書き方

blade テンプレートでの Form ファサードを使った書き方。

フォームタグ

# 基本の書き方
{{ Form::open() }}
{{ Form::close() }}

# URL 指定
{{ Form::open(['url' => 'http://example.com']) }}

# ルーティング指定
{{ Form::open(['route' => 'home.index']) }}
{{ Form::open(['route' => ['home.index', $user]]) }}

# コントローラ指定
{{ Form::open(['action' => 'Controller@method']) }}

# GET 送信
{{ Form::open(['method' => 'get']) }}

# ファイルアップロード
{{ Form::open(['files' => true]) }}

テキスト、テキストエリア

# テキスト
{{ Form::text('name') }}
{{ Form::text('title', null, ['class' => 'cssクラス名']) }}

# テキストエリア
{{ Form::textarea('explain') }}
{{ Form::textarea('note', null, ['class' => 'cssクラス名', 'rows' => '5']) }}

セレクトボックス

{{ Form::select('pref', $pref_list) }}
{{ Form::select('area', [1 => '東日本', 2 => '西日本'], 1, ['class' => 'cssクラス名']) }}

option タグに属性を指定したい場合の方法が公式ドキュメントに見つからず苦労しました。
ドキュメントには見当たりませんでしたが、以下のように第5引数を指定することで、option タグに各種属性を持たせることができます。

$types = [
    1 => 'TYPE A',
    2 => 'TYPE B',
    3 => 'TYPE C',
];

$options = [
    1 => ['disabled' => true],
    3 => ['style' => 'color:#f00'],
];

{{ Form::select('type', $types, $type ?? null, ['placeholder' => '-'], $options) }}

チェックボックス、ラジオボタン

# チェックボックス
<label>{{ Form::checkbox('hobby[]', 'movie') }}映画</label>
<label>{{ Form::checkbox('hobby[]', 'sport', true, ['class' => 'cssクラス名']) }}スポーツ</label>

# ラジオボタン
<label>{{ Form::radio('gender', 1, true) }}男性</label>
<label>{{ Form::radio('gender', 2, null, ['class' => 'cssクラス名']) }}女性</label>