##【概要】
プルダウンを作成する際viewをスッキリさせたかったので、configフォルダにプルダウンで表示したい項目を記述し、viewに引っ張ってくる方法で作成しました!
完成図はこんな感じになります。
(今回は都道府県のプルダウンを作成します!)
##①プロジェクトのconfigフォルダにPrefectures.phpを作成
configフォルダにPrefectures.phpを作成し、47都道府県を連想配列で記述します。
Prefectures.php
<?php
return [
'0' => '未選択',
'1' => '北海道',
'2' => '青森県',
'3' => '岩手県',
'4' => '宮城県',
'5' => '秋田県',
'6' => '山形県',
'7' => '福島県',
'8' => '茨城県',
'9' => '栃木県',
'10' => '群馬県',
'11' => '埼玉県',
'12' => '千葉県',
'13' => '東京都',
'14' => '神奈川県',
'15' => '新潟県',
'16' => '富山県',
'17' => '石川県',
'18' => '福井県',
'19' => '山梨県',
'20' => '長野県',
'21' => '岐阜県',
'22' => '静岡県',
'23' => '愛知県',
'24' => '三重県',
'25' => '滋賀県',
'26' => '京都府',
'27' => '大阪府',
'28' => '兵庫県',
'29' => '奈良県',
'30' => '和歌山県',
'31' => '鳥取県',
'32' => '島根県',
'33' => '岡山県',
'34' => '広島県',
'35' => '山口県',
'36' => '徳島県',
'37' => '香川県',
'38' => '愛媛県',
'39' => '高知県',
'40' => '福岡県',
'41' => '佐賀県',
'42' => '長崎県',
'43' => '熊本県',
'44' => '大分県',
'45' => '宮崎県',
'46' => '鹿児島県',
'47' => '沖縄県'
];
'0'に'未選択'を設定することで、上の画像のようにプルダウンが閉じた状態の時に'未選択'が表示されるようになります。
##②controllerに追記
※今回は検索機能でプルダウンを使用したのでsearchInputメソッドに記述しています
××××Controller.php
public function searchInput(Request $request)
{
//省略
//configのPrefectures.phpの情報を$prefecturesに代入
$prefectures = config('Prefectures'); //追記
//viewに $prefectures を渡す
return view('search_input', [
"prefectures" => $prefectures, //追記
]);
##②viewに追記
search_input.blade.php
<form method="get" action="/search" class="search-form">
@csrf
<div class="form-group">
<div class="font-weight-bold"><label for="prefectures">勤務地</label></div>
<select class="form-control" name="prefectures">
/*
viewでは、foreachを使用し$prefecturesをkey($key)とvalue($prefecture)で取り出しています。
$keyはoptionタグのvalueに指定しておきます。
*/
@foreach($prefecturs as $key => $prefecture)
<option value="{{ $key }}">
{{ $prefecture }}
</option>
@endforeach
</select>
</div>
//省略
これでうまく表示できているかと思います!
##最後に
この書き方をすることで、プルダウンの内容に変更や追加があった場合configのファイルをいじるだけで修正ができ、また、viewのコードがすっきりするので何かと便利かと思います。
プルダウンを使う際、参考になれば幸いです!