LaravelCache,Laravel,PHP,Redis,キャッシュ,テスト

Laravel Logo
結論

テスト実行中でした。

そして、 env.testing での `CACHE_DRIVER` 設定は file になっていた、というオチ。

「こないだまで普通に実行できてたはずなのに!」

って焦りながら悩んでて、気づくのにしばらくかかりましたよ… (-_-;)

LaravelBlade,Mail,Mock,Test,UnitTest

Thumbnail of post image 071

結論

たぶん、メールの文面用に用意した blade 内で、 $message->embed(‘public/images/logo.png’)  とか書かれてると思います。

メールのレンダリングを実行する前に、

$mail->viewData = new Message(new Swift_Message());

を実行してやることで、 ...

LaravelEloquent,Laravel,PHP

Thumbnail of post image 185

結論

削除しようとしているそのモデル、SoftDelete 設定になってません?

assertDatabaseMissing ではなく assertSoftDeleted 使ってね。

詳細

テストコードをたくさん書いていくぜー!

って張り切ったものの、めっちゃ足止め食らいました…。

リモートデバッグで1行ずつ動かしても、

App\Models ...

LaravelFactory,Laravel,PHP,Test

Thumbnail of post image 040
結論setUpBeforeClass() が実行されるタイミングでは factory は使えない。(そもそもデータの状態が他のテストケースに依存しないようにした方が良い)
setUp() 内で parent::setUp() 呼ぶの忘れてない?(公式にも「テストクラスに独自のsetUpメソッドを定義する場合は、親のクラスのparent::setUp()/parent::tearDown()を ...

LaravelLaravel,PHP,Storage,ファイル操作

Laravel Logo
結論

config/filesystems.php に、自前で設定を追加すればOK。

詳細

Laravel のデフォルト設定だと、

'local' => ,

となっておりまして、 プロジェクトルート/storage/app が起点になってました。

例えば、/storage/temp にある全ファイルを取得したい、という場合に、

$tempfiles ...

Laravel,PHPLaravel,PHP,Rule,Validation,バリデーション,年月,年月日,日付関数

Thumbnail of post image 019
結論

PHP に checkdate() 関数が用意されてました…。

PHP: checkdate – Manual

言い訳

年月日、もしくは年月のみがパラメーターで渡されてくる場合に、年月日として有効かどうか?のパリデーションをかけたかったわけです。

で、Carbon とかで用意されてる…よね? とか思っていろいろ探してたら見つからなくて、PHP ...

LaravelCSV,Excel,Laravel,Laravel-Excel,PHP,Shift_JIS,UTF-8,エクスポート,ダウンロード,文字化け

Laravel Logo
結論作成した HogeExport クラスに getCsvSettings() で CSV の設定を用意しておく。
忘れずに WithCustomCsvSettings を implement する。

2つ目を忘れてると、getCsvSettings() 用意しておいても無視されて気づかないのです…。

詳細

Excelで csv ファイルを開いたときに文字化けする現象で ...

Laravelartisan,composer,migration,PHP,Queue

Laravel Logo
結論作成された migration ファイルを普通に削除する
composer dump-autoload 実行
もっかい作る
詳細php artisan make:migration add_new_columns_to_user_table

とか実行した後に、「あ、しまった、 --table 指定するの忘れたー!」と思って再作成。

すると

failed ...

Laraveldebug,Laravel,PHP,Queue,Worker,バッチ処理,ブレークポイント

Laravel Logo

結論

QUEUE_DRIVER=database にしておけば failed_jobs テーブルの exception カラムに StackTrace が記録されるので、そこから辿るべし。

詳細

Queue に突っ込んだ処理をデバッグしようとしても全然言うこと聞いてくれない。

ブレークポイントが効かないので、仕方なく Log::debug() したりもしたんだけれど、何も ...

LaravelEloquent,Laravel,PHP

Thumbnail of post image 154

結論

DB::table() ->leftJoin() で第二引数にクロージャーを渡せるので、その中でフィルタ的な処理を書き込む。

詳細

ユーザーが投稿した記事の一覧を取得する際はこんな感じで LEFT JOIN を指定。

$users = DB::table('users') ->leftJoin('posts', 'users.id', '=', 'posts. ...