В проекте используется yii2-file-kit, в какой-то момент я начал работать с "лишними" запросами в базу данных.
Выяснил следующее: есть модель Model у неё в behavior прописаны настройки UploadBehavior, всё по инструкции с https://github.com/trntv/yii2-file-kit. При выполнении любых Model::find() в UploadBehavior срабатывает EVENT_AFTER_FIND, который подтягивает данные из модели с загруженными файлами.
В итоге получается, в том же GridView, где угодно, сделав Model::find()->all() я получаю кратное количество select * from (uploadRelation).
У меня прописано 3 связанных модели и в итоге получаю троекратную ситуацию.
В UploadBehavior выполняется метод:
Код: Выделить всё
public function afterFindMultiple()
{
$models = $this->owner->{$this->uploadRelation};
$fields = $this->fields();
$data = [];
foreach ($models as $k => $model) {
/* @var $model \yii\db\BaseActiveRecord */
$file = [];
foreach ($fields as $dataField => $modelAttribute) {
$file[$dataField] = $model->hasAttribute($modelAttribute)
? ArrayHelper::getValue($model, $modelAttribute)
: null;
}
if ($file['path']) {
$data[$k] = $this->enrichFileData($file);
}
}
$this->owner->{$this->attribute} = $data;
}
Или я ошибаюсь? Подскажите пожалуйста.
Вопрос конечно к автору модуля, но я не знаю где его лучше задать, может направите? (если тут будет полная тишина попробую на github спросить)