bunty's blog

ググったこととか勉強したことのメモ

Laravel

Heroku にある Laravel の MYSQL_ATTR_SSL_CA を設定する

config/database.php ファイルの MYSQL_ATTR_SSL_CA を設定する機会がありました。 この環境変数自体は PDO の PDO::MYSQL_ATTR_SSL_CA を指定するのでドキュメントを見てみると、「SSL 認証局のファイルパス。」 と記載があるためパスを指定すれば良いよう…

Eloqent の booted をうまく使いこなせていないなぁという話

オブザーバー とか知らなくてメモしておこうと思った。 readouble.com ドキュメントに書いてあるこれ。あんまり詳しくドキュメント読んだことなかったけど、思ったよりライフサイクルいっぱいある。 Eloquentモデルはいくつかのイベントをディスパッチし、モ…

Laravel の Model で配列に cast させる際に文字化けさせないようにする

日本語のエラーメッセージなどを扱う際に、PHP の json_encode を使用する場合には、第二引数に JSON_UNESCAPED_UNICODE を指定する必要があります。 echo json_encode(['あ', 'い']); ["\u3042","\u3044"] php > echo json_encode(['あ', 'い'], JSON_UNES…

Laravel の キューワーカがタイムアウトした場合にはプロセスを停止するので注意

ここら辺ちゃんと理解していないくて事故ったことがあるのでメモ。 ドキュメントにあるように、こんな感じでタイムアウトを設定してキューワーカを実行していた。 php artisan queue:work --timeout=30 タイムアウトした場合にその処理だけが失敗となり次の…

Eloquent の scope で join をする際に、重複してテーブルを join させないようにする

今回の内容はスコープに限った話ではないのですが、まあスコープをよく使うのでそれについて。 laravel.com 特定の条件で絞り込みを行う際に、スコープに切り出して使いまわせるようにすることがあると思います。 その際にそのスコープの中で join させて、j…

Laravel のコマンド実行時に標準入力にデータを渡して実行する

バッチの処理やちょっとした処理を行う時に、よく Laravel のコマンドを作成することがあります。 その際にオプションや引数ではなく、ローカルにあるファイルをまるっと渡したいなーと思ったのですが、その際に対応した内容についてのまとめです。 laravel.…

Eloquent でインクリメント時に他のカラムも更新させる

インクリメントする際に、日付のカラムも更新をしたいことがあったが、こんな感じでできるらしい。以上。笑 Product::where('id',$id) ->increment('count', 1, ['increased_at' => Carbon::now()]); stackoverflow.com

Heroku で Laravel の seeder 実行時に Class 'Faker\Factory' not found となる場合の対処

Heroku 上で Laravel で作成したアプリケーションを動しているよきに発生したエラーの対応についてです。 発生したエラーについて ローカルでは正常に動いていた seeder が、Heroku ではエラーになってしまいました。 下記が seeder 実行時のエラーです。Fac…