LoginSignup
0
0

More than 1 year has passed since last update.

Laravel 課題1・郵便番号辞書

Posted at

郵便番号の一覧データを読み込み、

郵便番号
都道府県
市区町村
町域
のデータを表示する画面を作成してください。

csvファイル

/storage/app/zip_data_split_1.csv

"0600000","ホッカイドウ","サッポロシチュウオウク","イカニケイサイガナイバアイ","北海道","札幌市中央区","以下に掲載がない場合"
"0640941","ホッカイドウ","サッポロシチュウオウク","アサヒガオカ","北海道","札幌市中央区","旭ケ丘"
"0600041","ホッカイドウ","サッポロシチュウオウク","オオドオリヒガシ","北海道","札幌市中央区","大通東"
"0600042","ホッカイドウ","サッポロシチュウオウク","オオドオリニシ(1-19チョウメ)","北海道","札幌市中央区","大通西(1〜19丁目

ルーティング

/routes/web.php

<?php

Route::get('/zipcode_list', 'SampleController@zipcodeList');

コントローラー

app/Http/Controllers/SampleController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class SampleController extends Controller{

 public function zipcodeList(){
      // SplFileObjectの作成
      $file = new \SplFileObject(storage_path('app/zip_data_split_1.csv'));

      // 読み込み設定
      $file->setFlags(
        \SplFileObject::READ_CSV | // CSVを配列形式で読み込む
        \SplFileObject::READ_AHEAD |
        \SplFileObject::SKIP_EMPTY | // 前の行と合わせて、空行があったら読み飛ばす
        \SplFileObject::DROP_NEW_LINE // 改行コードは無視する
      );
      // 1行ずつ読み込んで配列に保存
      $members = [];
      foreach($file as $member){
        $members[] = $member;
      }

      return view('samples.zipcode_list', [
        'title' => '郵便番号一覧',
        'members' => $members,
      ]);
   }

}

ビュー

resources/views/samples/zipcode_list.blade.php

<style>
  table {
    border-collapse: collapse;
  }
  th, td {
    border: solid 1px black;
    padding: 5px;
  }
</style>

@extends('layouts.default')

@section('title', $title)


<h1>{{ $title }}</h1>

@section('content')
<table>
        <tr>
          <th>郵便番号</th>
          <th>都道府県</th>
          <th>市区町村</th>
          <th>町域</th>
        </tr>

    @foreach($members as $member)    
     <tr>
         <td> {{ $member[0] }} </td>
         <td> {{ $member[4] }} </td>
         <td> {{ $member[5] }} </td>
         <td> {{ $member[6] }} </td>
    </tr>
    @endforeach
    </table>
 @endsection

0
0
0

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
0
0