Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 19.04.2016 09:15:10

Как правельно сдела return с модели чтобы не возвращался Exception.

Имею стандартную ситуацию scope в моделе:

public static function scopeGetUserStores($query, $user_id = false)
    {
        if (!$user_id) {
            $user_id = \Auth::id();
        }

            $user = $query->with('store_lists')->find($user_id);
            $stores = $user->store_lists->pluck('id')->toArray();
            return (is_array($stores)) ? $stores : [];
        
        });
    }

По логике вещей в контролере, если у пользователя нет складов должен быть пустой масив, но так не получается в контролер возврашается
Exception.
Приходится делать дополнительную проверку в контролере, что то на подобии:

 $list_stores= (is_array($stores)) ? $stores : [];

Хотя ты уже эту проверку сделал в model... И как то поменять это поведения я не могу. Так как проблема на форуме не поднималась я смею догадываться что чего то не знаю просто, а решается она достаточно легко - может подскажет кто ?

Ps: логичный вариант словить Exception тоже не проходит....

            try {
                 $stores = $user->store_lists->pluck('id')->toArray();
             } catch (\Exception $e) {
                 return [];
             }

Изменено s_vadim (19.04.2016 09:17:53)

Не в сети

Подвал раздела