郵便番号の一覧データを読み込み、
郵便番号
都道府県
市区町村
町域
のデータを表示する画面を作成してください。
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