Size: a a a

2021 August 05

AE

Alexander Egorov in Laravel Pro
Добрый день, подскажите пожалуйста можно ли сделать так что бы модель отдавала обьект а не массив, если там используется with?
источник

SG

Sergey Gerasimov in Laravel Pro
Она и так отдает объекты...
источник

AE

Alexander Egorov in Laravel Pro
return self::whereSlug($category)
    ->with([
        'catalog' => function (HasOne $query) use ($catalog) {
           $query->whereSlug($catalog)->firstOrFail();
        },
        'items' => function (HasMany $query) use ($itemIds) {
            if (count($itemIds) != 0) {
                $query->whereIn('id', $itemIds);
            }
        },
        'catalog.attributes',
        'items.images'
    ])->firstOrFail();
источник

AE

Alexander Egorov in Laravel Pro
в blade доступ к $items.images получаю $items[‘images']
источник

SG

Sergey Gerasimov in Laravel Pro
items - коллекция, images судя по всему тоже.
У коллекции есть поведение массива, ты можешь обращаться как: $model->items->first()->images
источник

EG

Egor Gruzdev in Laravel Pro
Можно сделать чтоб при выборке из базы все было массивами, а не stdClass

https://t.me/laravel_web/597092
источник

SG

Sergey Gerasimov in Laravel Pro
Так у него вроде бы и так не билдер, а Eloquent
источник

AE

Alexander Egorov in Laravel Pro
$items->first()->name в blade отдает Call to a member function first() on array
источник

SG

Sergey Gerasimov in Laravel Pro
А как $items в блейд передается?
источник

AE

Alexander Egorov in Laravel Pro
view('catalog.list', CatalogCategory::getItems($catalog, $category));
источник

SG

Sergey Gerasimov in Laravel Pro
Что такое getItems?
источник

AE

Alexander Egorov in Laravel Pro
return self::whereSlug($category)
    ->with([
        'catalog' => function (HasOne $query) use ($catalog) {
           $query->whereSlug($catalog)->firstOrFail();
        },
        'items' => function (HasMany $query) use ($itemIds) {
            if (count($itemIds) != 0) {
                $query->whereIn('id', $itemIds);
            }
        },
        'catalog.attributes',
        'items.images'
    ])->firstOrFail();
источник

AE

Alexander Egorov in Laravel Pro
содержимое метода getItems
источник

SG

Sergey Gerasimov in Laravel Pro
Ну всё понятно, у тебя он в массив раскладывается
источник

AE

Alexander Egorov in Laravel Pro
а в каком месте(
источник

AE

Alexander Egorov in Laravel Pro
не пойму
источник

SG

Sergey Gerasimov in Laravel Pro
view('catalog.list', CatalogCategory::getItems($catalog, $category));
источник

SG

Sergey Gerasimov in Laravel Pro
Во 2ом параметре
источник

EG

Egor Gruzdev in Laravel Pro
Так заведи еще один relation и назови его item и сделай его hasOne вместо HasMany если тебе надо одно значение.
источник

SG

Sergey Gerasimov in Laravel Pro
Передай в переменной view('catalog.list', ['catalogCategory' => CatalogCategory::getItems($catalog, $category)]);
источник