Использование Laravel и Eloquent ORM, я пытаюсь определить, существует ли запись в моей базе данных. Это код, я использую, чтобы проверить вещи:Laravel Eloquent ORM существует свойство не работает
$store = Store::where('ext_hash', 'thisHashExists')->first();
if($store->exists){
echo 'yes';
}
else{
echo 'no';
}
$another_store = Store::where('ext_hash', 'thisHashDoesNotExist')->first();
if($another_store->exists){
echo 'yes';
}
else{
echo 'no';
}
Для первого примера, где хэш существует, она работает правильно, но во втором примере, когда хэш не существует, я получаю ошибка на линии $another_store->exists
.
Trying to get property of non-object
Я предполагаю, что ошибка в том, что объект $ another_store в действительности является не объектом, так как я пытался создать его с помощью статического метода. Как должно использоваться это свойство exists
?
Сначала я попытался создать объект, а затем извлек его с помощью нестатических методов, но методы, похоже, не работают таким образом, если я что-то не упускаю. Например:
$store = new Store();
$store->where('id', 1)->first();
print_r($store);
Этот код просто выводит пустой Store
объект, как если бы where
и first
методы не имели никакого влияния на него. Это ожидалось?
First() возвращаемые значения являются объектом модели или ноль. Если в результатах нет значения, возвращается значение null. –
Хорошо спасибо. Поэтому, чтобы проверить, существует ли запись, я могу просто проверить, что переменная не равна нулю. Что касается последней части моего вопроса, используя методы типа 'where' на уже созданном объекте. Должно ли это правильно получить объект или методы не могут использоваться таким образом? – flyingL123