Laravel isNotEmpty () не работает на модели Eloquent - PullRequest
0 голосов
/ 15 мая 2019

Я, вероятно, запутался в 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(), должны быть в состоянии использоваться на возвращенной модели?

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

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

Использование

if($test_row)
{
    return $test_row
}
1 голос
/ 15 мая 2019

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

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

if ($test_row) {
    return $test_row;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...