状況
joinとか使うSQLになると、select文の中のカラム指定では、
「hoge_table.name」や「hoge_table.age」のようにテーブル名と一緒にくっつけた名前になる場合があります。
laravelでsqlのクエリビルダのメソッドの中で「IFNULL」を使う場合は、普通に一つの文字列でやると失敗するので、バッククォートを使う必要がある。
もしカラム名のところがテーブル名無しの「age」だけとかならそのままバッククォート1つでいいが、テーブル名がくっつくタイプのものならそれぞれに分けてバッククォートつける必要があるのが注意。
anime-suko.php
$result = モデル名::select([
'hoge_table.id',
'hoge_table.name',
'hoge_table.age',
DB::raw('IFNULL(`second_table`.`power`, 0)')
])
}
英語ですが、以下の記事にヒットしてよかった
https://stackoverflow.com/questions/45129228/mysql-join-unknown-column-in-field-list