Я пытаюсь получить доступ к родительскому значению, дате публикации во вложенной функции.
В моем приложении у пользователя много постов, каждый из которых связан с продуктом (учебником). Каждый раз, когда кто-то просматривает страницу с продуктом, в таблицу представлений продуктов добавляется новая строка.
Я хочу вернуть совокупное количество раз, когда пользователи видели продукты. Мне удалось получить все сообщения пользователей, затем связанный продукт, а затем подсчитать все просмотры этого продукта.
Теперь я хотел бы добавить еще одно условие where (), чтобы возвращать только те просмотры, которые произошли после создания записи. Для этого мне нужно получить дату постов, например, views-> product-> post при построении запроса, например user-> posts-> product-> views.
// getting all of the users available posts
$user = $request->user()->posts()->available()->with([
// with the textbook (product) associated with the post
'textbook' => function ($q) {
// get the count of textbook-page views
return $q->withCount([
// from the related table views
'views' => function ($q) {
// ===!!! Q !!!=== How do I access the posts (parent (grandparent?)) date, so that I only select the rows that have been viewed after the post was created ===!!!===
->where('date-viewed', '>=', 'posts.date');
},
]);
//some cleanup
}])->distinct()->get()->unique('isbn')->pluck('textbook.views_count')->sum();
Как перейти назад во вложенной функции для доступа к дате публикации?