Size: a a a

Laravel для начинающих

2021 June 16

D

Dimk_O in Laravel для начинающих
Как можно эту функцию оптимизировать?
источник

D

Dimk_O in Laravel для начинающих
/**
    * @return \Illuminate\Database\Eloquent\Collection
    */
   public function getProperties()
   {
       return $this->properties()->select('*')->orderBy('sort_order')->get()->groupBy(function($q) {
           return PropertyGroup::where('ultra_uuid', $q->property_group_ultra_uuid)->first()->ultra_name;
       });
   }
источник

D

Dimk_O in Laravel для начинающих
public function properties()
   {
       return $this->hasMany(ProductProperty::class, 'product_ultra_uuid', 'ultra_uuid');
   }
источник

D

Dimk_O in Laravel для начинающих
Из-за нее получается большой перегруз запросов
источник

D

Dimk_O in Laravel для начинающих
96 запросов
источник

D

Dimk_O in Laravel для начинающих
если без groupBy то все гуд
источник

РИ

Рустам Исакжанов... in Laravel для начинающих
Жадная загрузка
источник

РИ

Рустам Исакжанов... in Laravel для начинающих
->with(property group)
источник

РИ

Рустам Исакжанов... in Laravel для начинающих
Можно за место select
источник

D

Dimk_O in Laravel для начинающих
Не совсем понял
источник

D

Dimk_O in Laravel для начинающих
как в groupBy влепить ->with
источник

РИ

Рустам Исакжанов... in Laravel для начинающих
Перед групировкой
источник

gg

gri gvandri in Laravel для начинающих
Добрый день!
На одном компьютере ветка а сваотризацией работает корректно на другом нет. Т.е. после авторизации делается api запрос который возвращает Auth::user(). Но он возвращает null (midlewear добавлен необходимый и на другом компе работает). если послать запрос из браузера то он раз срабатывает потом нет. Из web запрос тоже возвращает null. Возможно дело во времени жизни сессии laravel или php как думаете?
источник

D

Dimk_O in Laravel для начинающих
а понял
источник

D

Dimk_O in Laravel для начинающих
return $this->properties()->with('property_group')->orderBy('sort_order')->get()->groupBy(function($q) {
           return PropertyGroup::where('ultra_uuid', $q->property_group_ultra_uuid)->first()->ultra_name;
       });
источник

D

Dimk_O in Laravel для начинающих
но все равно запросы как были так и остались
источник

P

Pavel in Laravel для начинающих
у тебя ->get() получает коллекцию, и потом на каждый элемент коллекции выполняет запрос из groupBy, как минимум с этим надо что-то сделать, вытащи все группы заранее и потом уже используй их
источник

РИ

Рустам Исакжанов... in Laravel для начинающих
У тебя должен быть релейшин property_group из групировкой нужно убрать запрос , оставить только ключ групировки
источник

РИ

Рустам Исакжанов... in Laravel для начинающих
И тогда 96 лишних запросов превратятся в 1
источник

D

Dimk_O in Laravel для начинающих
ну это понятно
источник