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

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

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

詳細

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

Laravelartisan, composer, migration, PHP, Queue

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

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

すると

failed ...

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

結論

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

詳細

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

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

LaravelEloquent, Laravel, PHP

結論

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

詳細

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

ただし、この場合だと LEFT JOIN (テーブル名) ON (条件式…)の条件式部分に1つの条件(通常はキーカラムをマッチさせる)しか指定で ...

LaravelEloquent, Laravel, PHP

結論

ありがちなのが、

{{ $user->getFirstName() }}

の $user->getFirstName() で、なぜか配列(文字列ではなく)が返ってきていた、というヤツ。

詳細

「これ、なーんかあったよなー…🤔」

って毎度悩むのでメモ。

bladeでこのエラーが発生すると、妙に場所の特定が難しいんですよね…。

Laravel1対n, 1対多, DB, Eloquent, Laravel, PHP, QueryBuilder, クエリビルダ, サブクエリー, リレーション, 多対多

結論

Post と Comment (1対多の関係)を例にすると、

コントローラーからフツーに $posts を view に渡して…。

blade のループ内で

@forelse($posts as $post) <div>{{ $post->title }}</div> <div>{{ $post->commen ...

Laravel1対1, 1対多, DB, Eloquent, Laravel, リレーション

結論

blade ファイルの中で @foreach と @empty を一緒に使ってません?

誤)

@foreach($posts as $post) <span>{{$post->title}}</span> @empty <span>該当データがありません</span> @endforelse

正)

@for ...

Laravel1対1, 1対多, DB, Eloquent, Laravel, リレーション

結論

どっか間違ってるんで再確認を。自分の場合は hasOne() を設定するメソッド名を複数形にしてました…。

詳細

Laravel-Admin 導入しておりまして、最初に hasMany だったリレーションを hasOne に変更したんです。

この場合、公式ドキュメントにあるように、Laravel-Admin 用のコントローラー内で

$form->text ...

LaravelCSRF, debug, デバッグ, トークン

CSRF トークンが正しく渡っていない可能性が高いのだけれど、他の原因も考えられるしなぁ…。という場合は、とにかく

vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php

でプレイクポイント設定して、トークンの値がきちんと渡っているか?を確認した方が早 ...

Laravel, Vue.jsBlade, Javascript, Laravel, PHP, Vue.js, , 日付

現象

“1980/12/12” って日付を渡してるはずなのに Vue 側で 13.75 とか表示されてしまう。

結論

計算式として 1980/12/12 が評価されてた。( 1980 ÷ 12 ÷ 12 = 13.75 )

詳細Blade側<mycomponent :birthday={{$birth}}></mycomponent&g ...