====== 【Laravel】Form ファサードを使った書き方 ====== blade テンプレートでの Form ファサードを使った書き方。 * [[https://laravelcollective.com/docs/6.x/html|ドキュメント]] ==== フォームタグ ==== # 基本の書き方 {{ 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]) }} ==== テキスト、テキストエリア ==== * 第1引数:名前 * 第2引数:値 * 第3引数:属性を配列形式で指定(key が属性、value が属性値) # テキスト {{ Form::text('name') }} {{ Form::text('title', null, ['class' => 'cssクラス名']) }} # テキストエリア {{ Form::textarea('explain') }} {{ Form::textarea('note', null, ['class' => 'cssクラス名', 'rows' => '5']) }} ==== セレクトボックス ==== * 第1引数:名前 * 第2引数:プルダウンの内容を配列形式で指定(key が option の value、value が表示タイトル) * 第3引数:selected にする値 * 第4引数:select タグの属性を配列形式で指定(key が属性、value が属性値) * 第5引数:option タグの属性を配列形式で指定 {{ 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) }} ==== チェックボックス、ラジオボタン ==== * 第1引数:名前 * 第2引数:値 * 第3引数:true(checked)、もしくは false / null * 第4引数:属性を配列形式で指定(key が属性、value が属性値) # チェックボックス # ラジオボタン