エラーメッセージからbook_userテーブルではなく_userテーブルを参照しているようです。このあたりを探ってみてください。
Like!
Laravelで図書館で借りた本をユーザが確認できる様なものを作成しています。
booksテーブル
で本を登録し usersテーブル
にあるユーザの情報を用いて book_user
テーブルに借りた本とユーザidそれから借りた日時として created_at
を保存しています。
そこで その日(現在日時)に借りたレコードだけ引っ張り出したいのですがわからないです。。。
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pivot_created_at' in 'where clause' (SQL: select * from `users` where exists (select * from `books` inner join `book_user` on `books`.`id` = `book_user`.`book_id` where `users`.`id` = `book_user`.`user_id` and date(`pivot_created_at`) = 2020-09-23))
$users = User::with(['books' => function ($q) {
$q->whereDate('pivot_created_at', now());
}])->first();
エラーメッセージからbook_userテーブルではなく_userテーブルを参照しているようです。このあたりを探ってみてください。
pivot_created_at
カラムがあるのはbook_user
テーブルですか?
であれば、テーブル名を指定してあげる必要があるんじゃないでしょうか。
$q->whereDate('book_user.pivot_created_at', now());
※試してません
また質問と直接関係ないですが、回答をいただいた後、質問の内容を変更してますか?
もし回答を元に直した結果、エラーが変わったのであれば、元のエラーや質問はそのままにして、追記したほうが良いかもしれません。
その方が後から見る方の参考になるし、回答も付きやすそうです。