【Laravel】 都道府県のプルダウンをさくっと作る

えびさん

都道府県コードでデータ保持したいけどテーブル作るのめんどくさい・・・

定数でさくっと作っちゃおう

configディレクトリのなかに都道府県リスト用のファイルを作る

名前はなんでもいいけどpref.phpとする

<?php
return [
    '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' => '沖縄県'
];

configディレクトリの下の設定ファイルの内容は、
config('ファイル名.キー名')で取得できるようになっている

ControllerでもViewでもどこからでもアクセス可能だから超便利

今回だと、config('pref')都道府県の配列が取得できる

viewで表示してみる

  • pref.blade.php
 <select>
  @foreach(config('pref') as $pref_id => $name)
    <option value="{{ $pref_id }}">{{ $name }}</option>
  @endforeach
  </select>

入力値をselectedにしたい場合はこんな感じ

 <select name="pref_id">
  @foreach(config('pref') as $pref_id => $name)
    <option value="{{ $pref_id }}" {{ old('pref_id') === $pref_id ? "selected" : ""}}>{{ $name }}</option>
  @endforeach
  </select>

Invalid argument supplied for foreach()エラーが出たときは、キャッシュ削除する

php artisan config:cache

出た〜