Laravel isNotEmpty() не работает с моделью Eloquent

Меня, наверное, смущает Eloquent (снова...), но я подумал, что это должно работать:

$test_row = Test::
            where('status', 'active')
            ->where('condition2', 'value')
            ->orderBy('order', 'asc')
            ->first();

        if ($test_row->isNotEmpty())
            return $test_row;

Но выдает ли он следующую ошибку: Call to undefined method App\Test::isNotEmpty().

Используя first(), он вернет модель Eloquent, верно? А isNotEmpty(), как и isEmpty(), можно будет использовать на возвращаемой модели?

Eloquent может вернуть null по запросу, если результат не найден.

Dan 15.05.2019 13:18
isNotEmpty - это вспомогательный метод коллекций laravel, и вы используете его поверх другого помощника, поэтому вы получаете исключение. Для работы с ним вы можете удалить ->first() из объекта построителя запросов.
M Khalid Junaid 15.05.2019 13:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
1 781
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы пытаетесь вызвать isNotEmpty() для объекта модели, а не для коллекции, когда вы используете first(), он возвращает объект, а не коллекцию.

Использовать

if ($test_row)
{
    return $test_row
}
Ответ принят как подходящий

Метод isNotEmpty() на самом деле возвращается классом Laravels Коллекция, а не моделью Eloquent. Поскольку вы не запрашиваете несколько результатов, вместо коллекции возвращается только модель.

Просто используйте

if ($test_row) {
    return $test_row;
}

чтобы проверить, дал ли запрос какие-либо результаты и существует ли модель.

Другие вопросы по теме