Как я могу получить последнюю запись в таблице с предложением where, используя Laravel?

Как я могу получить последнюю запись в таблице с предложением where, используя Laravel?

13.03.2020 04:45:06 Просмотров 23 Источник

Я создаю уведомления базы данных. У меня есть 2 класса уведомлений: InterviewRequestReceived.РНР:

$user = Auth::user();
        $interviewRequestReceived = InterviewRequestsReceived::latest()->where('user_id', $user->id)->get();
        return [
            'date_time1' => $interviewRequestReceived[$interviewRequestReceived->count() - 1]->latest()->get('date_time1'),
            'date_time2' => $interviewRequestReceived[$interviewRequestReceived->count() - 1]->latest()->get('date_time2')
        ];

и Интервьюируйсент.РНР:

public function toDatabase($notifiable)
    {
        $user = Auth::user();
        $interviewRequestSent = InterviewRequestsSent::latest()->where('user_id', $user->id)->get();
        return [
            'date_time1' => $interviewRequestSent[$interviewRequestSent->count() - 1]->latest()->get('date_time1'),
            'date_time2' => $interviewRequestSent[$interviewRequestSent->count() - 1]->latest()->get('date_time2')
        ];
    }

У меня есть 3 стола. interview_requests_receiveds, interview_requests_sents и я создали таблицу уведомлений и перенесли ее. В моей форме у меня есть 2 варианта полей datetime, поэтому работодатели могут выбрать 2 возможных даты и времени, которые будут работать для них, чтобы взять интервью у кандидата. Моя форма работает. Мои уведомления работают, за исключением того, что он вставляет все зарегистрированные даты и время пользователей, а не только последнюю вставленную запись.

Я пытаюсь использовать latest (), но это не работает.

У вопроса есть решение - Посмотреть?

Ответы - Как я могу получить последнюю запись в таблице с предложением where, используя Laravel? / How do I get the last record in a table with a where clause using Laravel?

Является ответом!
Sehdev

13.03.2020 06:32:24

Согласно документации Laravel

В latest и oldest методов позволит вам с легкостью упорядочить результаты по дате . По умолчанию результат будет упорядочен по номеру created_at колонка. Или же вы можете передать имя столбца, по которому хотите выполнить сортировку

Если вы хотите использовать последнюю версию, то вместо get() используйте функцию first():

Если в вашей таблице уже есть столбец created_at, то

$interviewRequestSent = InterviewRequestsSent::latest()->where('user_id', $user->id)->first();

ОПЕРАЦИОННАЯ

Предполагая, что вы хотите получить последнюю запись на основе столбца id

 $interviewRequestSent = InterviewRequestsSent::latest('id')->where('user_id', $user->id)->first();

Или вы можете получить последнюю запись с помощью любого из приведенных ниже методов

InterviewRequestsSent::where('user_id', $user->id)->last();

ОПЕРАЦИОННАЯ

oldest0

Ссылка:

Laravel -> конструктор запросов - > > последний метод

Закрыть X