2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【laravel】configフォルダを使用したプルダウンの作り方

Last updated at Posted at 2022-02-06

##【概要】
プルダウンを作成する際viewをスッキリさせたかったので、configフォルダにプルダウンで表示したい項目を記述し、viewに引っ張ってくる方法で作成しました!

完成図はこんな感じになります。
(今回は都道府県のプルダウンを作成します!)

プルダウン検索.png

プルダウン.png

##①プロジェクトの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のコードがすっきりするので何かと便利かと思います。
プルダウンを使う際、参考になれば幸いです!

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?