У меня есть следующая область запроса, которая возвращает ключи (JSON), которые могут храниться в контейнере:
public function scopeKeys($query, $container)
{
return $query->select('keys')
->whereNotNull('keys')
->where('name', $container)
->value('keys');
}
... в моем контроллере я получаю к нему доступ через:
Containers::keys($container);
Когда ключи существуют, я возвращаю их, как и ожидалось; тем не мение; когда поле keys
пусто, я получаю следующую ошибку:
Объект класса Illuminate \ Database \ Eloquent \ Builder не может быть преобразован в строку
Я бы хотел избежать использования firstOrFail()
, так как я не хочу бросать 404, я хочу вернуть пустой объект JSON.
Я уверен, что мог бы использовать ->exists()
для проверки, а затем условного возврата, но затем я делаю два запроса, если они существуют - кажется небрежным.