Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Дублирование запросов,страница обновления #22

Open
xr0m3oz opened this issue Apr 1, 2018 · 1 comment

Comments

@xr0m3oz
Copy link

xr0m3oz commented Apr 1, 2018

Не могу понять в чем причина, на странице обновления когда вывожу форму,
например

            <?= $form->field($modelShop, 'category_ids')->widget(Select2::classname(), [
                'data' => \common\models\Category::getAllList(),
                'options' => ['placeholder' => 'Выбрать категории','multiple' => true],
                'pluginOptions' => [
                    'allowClear' => true
                ],
            ]); ?>

            <?= $form->field($modelShop, 'country_ids')->widget(Select2::classname(), [
                'data' => $countryListArray,
                'options' => ['placeholder' => 'Выбрать страны','multiple' => true],
                'pluginOptions' => [
                    'allowClear' => true
                ],
            ]); ?>

Каждое такое поле, выполняет аж 9 запросов.Из них 4 дублируется.
yii debugger

У меня 2 поля таких category_ids, regions_ids итого +18 запросов.

Я не пойму или я что то делаю не так, или в чем может быть проблема.

    public function behaviors() {
        return [
            'relation' => [
                'class' => LinkerBehavior::className(),
                'relations' => [
                    'country_ids' => [
                        'countries',
                        'updater' => [
                            'class' => ManyToManySmartUpdater::class,
                        ]
                    ],
                    'category_ids' => [
                        'categories',
                        'updater' => [
                            'class' => ManyToManySmartUpdater::class,
                        ]
                    ],
                ],
            ],
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getShopCategories() {
        return $this->hasMany(ShopCategory::className(), ['shop_id' => 'id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getCategories() {
        return $this->hasMany(Category::className(), ['id' => 'category_id'])->via('shopCategories');
    }
@voskobovich
Copy link
Owner

@xr0m3oz смахивает на то, что поведение каждый раз делает выборку при обращении к атрибуту модели сategory_ids и другим. Возможно это ошибка. Сможете продебажить и подправить логику?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants