yii2-linker-behavior
yii2-linker-behavior copied to clipboard
Дублирование запросов,страница обновления
Не могу понять в чем причина, на странице обновления когда вывожу форму, например
<?= $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 дублируется.
У меня 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');
}
@xr0m3oz смахивает на то, что поведение каждый раз делает выборку при обращении к атрибуту модели сategory_ids
и другим. Возможно это ошибка. Сможете продебажить и подправить логику?