Eloquent получить данные, используя значение статуса последней модели отношения - PullRequest
0 голосов
/ 26 марта 2020

У меня есть две модели: пользователь и книги последняя имеет столбец status , который может принимать различные значения active , неактивно , удалено , поэтому у пользователя может быть несколько книг, и книга принадлежит пользователю.

, поэтому вопрос заключается в том, как я могу получить только пользователей, которые имеют Последняя книга со статусом удалена .

Я сделал это просто Запрос , но, похоже, не работает, потому что он удаляет всех пользователей со статусом, но не учитывает последнее это должно быть со статусом удалено (я должен использовать last () или что-то?)

return $user->whereHas('books', function (Builder $query) {
            $query->where('status', '=', 'deleted');
});

Книги пользователя hasMany метод

public function books()
{
    return $this->hasMany(
            Book::class,
            Book::USER_ID_COLUMN_NAME,
            self::PRIMARY_KEY_COLUMN_NAME
    )->orderBy(Book::PRIMARY_KEY_COLUMN_NAME, 'desc');
}

Книга пользователя принадлежащий метод

public function user() : BelongsTo
{
    return $this->belongsTo(User::class, self::USER_ID_COLUMN_NAME, User::PRIMARY_KEY_COLUMN_NAME);
}
...