Будет работать любое из следующих действий, каждое из которых по-своему будет иметь дело с нулевым результатом:
1. опционально помощник:
Необязательная функция принимает любой аргумент и позволяет вам получить доступ
свойства или вызов метода для этого объекта. Если данный объект является нулевым,
свойства и методы будут возвращать ноль вместо того, чтобы вызывать ошибку.
$user_data = optional($user_model->first())->toArray();
2. firstOr ()
Выполнить запрос и получить первый результат или вызвать обратный вызов.
$data = User::where('id', $id)->when(!is_null($select), function ($query) use ($select) {
return $query->select(explode(',', $select));
})->firstOr(function () {
return ['message' => 'No results'];
});
3. спасение помощник:
Функция спасения выполняет заданное Закрытие и перехватывает любые исключения, возникающие во время его выполнения. Все обнаруженные исключения будут отправлены в метод отчета вашего обработчика исключений; однако запрос продолжит обработку.
$data = rescue(function () use ($select) {
\App\Model\User::where('id', $id);
if ($select) {
$user_model->select(explode(',', $select));
}
return $user_model->first()->toArray();
});
4. попробуйте поймать:
try {
$user_model = \App\Model\User::where('id', $id);
if ($select) {
$user_model->select(explode(',', $select));
}
$user_data = $user_model->first();
$user_data = $user_data ?? $user_data->toArray();
} catch(\Exception $e) {
// handle the exception...
}