LaravelでCSVファイルを読み取る話
皆さん!Laravelしてますか!?
某、Youtubeをパクってみましたw
今回はLaravelにてCSVファイルを扱う方法というのを書いてみたいと思います。
ま、普通にPHPでCSVファイルを扱う方法と一緒かな?
今回使ったライブラリ?はSplFileObjectを使って氷川へきる先生の作品一覧を作ってみましょう。
サイトは、こちらです。宣伝です
前までの作品一覧シリーズと同じJavaScriptと同じで配列文字列を作ってやれば展開して画像を取得してくれます。
今回作成したソースはこんな感じです
@php
$reader = new SplFileObject(resource_path('books.csv'));
$reader->setFlags(SplFileObject::READ_CSV);
@endphp
@foreach( $reader as $rows)
<h3>{{ $rows[0] }}</h3>
<div class='row book_cover'>{{ join(',',array_slice($rows,1)) }}</div>
これ以上は…. ありません!
ま、PHP のCSV扱いが単純なので,区切りの文字列を作るのは簡単でした。
配列を文字列を作るJoinに第一配列を無視して第二文字列以降の配列を取得するのにはarray_sliceを使っています。
https://secure.php.net/manual/ja/function.array-slice.php
PHP初心者の私は調べましたが、知っている人にはま、そんなもんでしょうね
https://github.com/wataru775/laravel_sample_csv
シンプルにプロジェクトを作ってみたらそんな感じですね。
ほぼ、メモですねw
っとあれ?うちのホストでcomposerをupdateしてパッケージを公開しようとするとエラーが出た
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating optimized autoload files
Class Illuminate\Foundation\ComposerScripts is not autoloadable, can not call post-autoload-dump script
> @php artisan package:discover --ansi
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255
うむぅ〜悩んだ… とりあえず、前回作ったプロジェクトのcomposer.jsonをコピーしたら普通に動いた….
何だろうな