При жадной загрузке не уменшается кол-во запросов

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Аватара пользователя
Akulenok
Сообщения: 437
Зарегистрирован: 2014.05.05, 18:32
Откуда: localhost

При жадной загрузке не уменшается кол-во запросов

Сообщение Akulenok »

в таблице matches два юзера, user1 и user2
мне надо получить его имя из таблицы user и его аватар из таблицы profile
в search модели

Код: Выделить всё

public function search($params)
    {
        $query = Matches::find()->with(['userHome', 'userAway', 'profileHome', 'profileAway']);

        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        // grid filtering conditions
        $query->andFilterWhere([
            'created_at' => $this->created_at,
            'status' => $this->status,
        ]);

        return $dataProvider;
    }

В модели Matches такие связи

Код: Выделить всё

public function getUserHome()
    {
        return $this->hasOne(User::className(), ['id' => 'user1']);
    }

    public function getUserAway()
    {
        return $this->hasOne(User::className(), ['id' => 'user2']);
    }

    public function getProfileHome()
    {
        return $this->hasOne(Profile::className(), ['user_id' => 'user1']);
    }

    public function getProfileAway()
    {
        return $this->hasOne(Profile::className(), ['user_id' => 'user2']);
    }
во вьюхе вывожу так $model->userAway->username и $model->profileAway->avatar

в логе запросов вижу такое
SELECT * FROM `user` WHERE `id` IN (4, 3, 8)
это гуд
а профиль он дергает по каждому айди
SELECT * FROM `profile` WHERE `user_id`=3
SELECT * FROM `profile` WHERE `user_id`=8
SELECT * FROM `profile` WHERE `user_id`=2
Подскажите почему так?
ភាសាខ្មែរ Yii2 - это кайф!
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: При жадной загрузке не уменшается кол-во запросов

Сообщение futbolim »

Тут всё гуд. Скорее всего трабла в другом месте.
Закрыто