Laravel по-русски

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

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

#1 31.07.2018 00:48:08

Как в laravel eloquent узнать экземпляр модели если get вернул 0 запис

Добрый день.

Необходимо узнать экземпляр модели после выборки если по условиям вернулось ноль записей.

Если вернулась минимум 1 запись, то можно легко взять класс у первого значения из списка. Но если выборка не вернула ни одной записи, то понять какую модель запрашивали не получается. Существует ли возможность это сделать? Может какие либо dataProvider есть у eloqent?

$projects = Projects::where('id' , 6)->get();

object(Illuminate\Database\Eloquent\Collection)[229]
  protected 'items' =>
    array (size=0)
      empty

как тут я могу узнать какую модель я вызывал?

p.s. $projects передается дальше в шаблон blade и в виджет. Где мне нужно будет узнать какая модель передана (пусть даже с пустыми значениями). Еще один параметр передавать не охото.

Не в сети

#2 31.07.2018 11:11:26

Re: Как в laravel eloquent узнать экземпляр модели если get вернул 0 запис

Projects твоя модель. в ней же можно смотреть какую таблицу юзаешь.
protected $table = 'proj'; например..
вместо ->get(); посмотри запрос ->toSql(); что возвращает
только передается в шаблон коллекция моделей, а не модель.

Не в сети

#3 31.07.2018 23:23:43

Re: Как в laravel eloquent узнать экземпляр модели если get вернул 0 запис

Projects твоя модель. в ней же можно смотреть какую таблицу юзаешь.
protected $table = 'proj'; например..
вместо ->get(); посмотри запрос ->toSql(); что возвращает
только передается в шаблон коллекция моделей, а не модель.

toSql просто выводит sql запрос без биндинга параметров. Не пойму как им можно пользоваться?

Я просто пишу виджет для вывода таблицы с данными. Для этого мне нужно передать коллекцию элементов из запроса (если выборка вернула данные) и нужно вывести колонки, которые я смогу взять с модели. Но если строк 0 то не понятно какую модель запрашивали

@widget('table', [
        'dataProvider' => $projects,
        'columns' => [
            'name'
        ],
        'model' => App\Projects::class
    ])

вот не хочу писать постоянно model

Не в сети

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