[Laravel] Testでデータ削除してるのに assertDatabaseMissing が Failed になる
削除しようとしているそのモデル、SoftDelete 設定になってません?
assertDatabaseMissing ではなく assertSoftDeleted 使ってね。
詳細テストコードをたくさん書いていくぜー!
って張り切ったものの、めっちゃ足止め食らいました…。
リモートデバッグで1行ずつ動かしても、
App\Models ...[Laravel] EloquentのJOINで複数条件を指定したい
DB::table() ->leftJoin() で第二引数にクロージャーを渡せるので、その中でフィルタ的な処理を書き込む。
詳細ユーザーが投稿した記事の一覧を取得する際はこんな感じで LEFT JOIN を指定。
$users = DB::table('users') ->leftJoin('posts', 'users.id', '=', 'posts. ...[Laravel] htmlspecialchars() expects parameter 1 to be string, array given (View: …/index.blade.php) が出たら疑った方がいいヤツ
ありがちなのが、
{{ $user->getFirstName() }}の $user->getFirstName() で、なぜか配列(文字列ではなく)が返ってきていた、というヤツ。
詳細「これ、なーんかあったよなー…🤔」
って毎度悩むのでメモ。
bladeでこのエラーが発生すると、妙に場所の特定が難しいんですよね…。
[Laravel] リレーション先の最新日付を取得したい
Post と Comment (1対多の関係)を例にすると、
コントローラーからフツーに $posts を view に渡して…。
blade のループ内で
@forelse($posts as $post) <div>{{ $post->title }}</div> <div>{{ $post->commen ...[Laravel] Undefined variable: __empty_0 at …
blade ファイルの中で @foreach と @empty を一緒に使ってません?
誤)
@foreach($posts as $post) <span>{{$post->title}}</span> @empty <span>該当データがありません</span> @endforelse正)
@for ...[Laravel] hasOne のリレーションを設定しているのに保存されない
どっか間違ってるんで再確認を。自分の場合は hasOne() を設定するメソッド名を複数形にしてました…。
詳細Laravel-Admin 導入しておりまして、最初に hasMany だったリレーションを hasOne に変更したんです。
この場合、公式ドキュメントにあるように、Laravel-Admin 用のコントローラー内で
$form->text ...[Laravel]モデルの標準日付フォーマットを指定する
日付のフォーマットを YYYY-MM-DD から YYYY/MM/DD に変更したい。
結論モデルのDateフォーマットを↓こんな風に設定しても、うまくいかずエラーになってしまう。(MySQL ・ PostgreSQL ・ SQLite で試してみたけれど変わらず)
protected $dateFormat = 'Y/m/d H:i:s';画面上の出力形式を変更 ...