yii2-file-kit

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
polevoyk
Сообщения: 8
Зарегистрирован: 2015.03.27, 11:17

yii2-file-kit

Сообщение polevoyk » 2018.02.05, 14:33

Добрый день!

В проекте используется 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;
    }
Я так понимаю подтягиваются данные из связанной модели...Но зачем если я могу по месту где мне требуется сделать $model->uploadRelation->some_attribute...
Или я ошибаюсь? Подскажите пожалуйста.

Вопрос конечно к автору модуля, но я не знаю где его лучше задать, может направите? (если тут будет полная тишина попробую на github спросить)

Ответить