@Skrolea

Дублируются фото. Как отыскать проблему?

Добрый день. Не могу врубиться (может, если грамотно вопрос задам, то и ответ сам собой надумается).
Есть сайт на yii2. Сайт представляет из себя 10 разделов с фото в каждом разделе. Фото в каждый раздел сохраняются с помощью
public function upload() {

        if ($this->validate()) {
            foreach ($this->imageFiles as $file) {

                $md5file = substr(md5(microtime() . uniqid()), 0, 10);

                if ($file->saveAs('uploads/' . $md5file . '.' . $file->extension)) {
                    $dbsave = new Photos();
                    $dbsave->action = $this->action;                    
                    $dbsave->url = 'uploads/' . $md5file . '.' . $file->extension;                    
                    $dbsave->thumb = 'uploads/thumbs/' . $md5file . '.' . $file->extension;            
                    Image::crop(Yii::getAlias($dbsave->url),580,710,[170,10]) ->save(Yii::getAlias($dbsave->thumb), ['quality' => 100]);                   
                    $dbsave->save();
                }
            }
            return true;
        } else {
            return false;
        }
    }

, где $this->action; - это номер раздела. И всё было отлично, пока сегодня мне не заметили, что ново- загруженные фото в раздел содержат фото из более ранних разделов. Всего 4 штуки. Полез смотреть - эти четыре фото есть во всех ранних разделах. Т.е. загружаю я фото без них - в админке этих фото нет, а на фронте эти фото есть. В базе те "повторяющиеся" фото в своих разделах - использую таблицу
| id | url | thumb | action Вывожу на фронт с помощью
$searchModel = new PhotosSearch();
        $dataProvider = $searchModel->search($params);

        return $this->render('photos', [
                    'searchModel' => $searchModel,
                    'dataProvider' => $dataProvider,
                    'place' => $place, 'actionDate' => $actionDate
        ]);
, где params получаю с помощью 'url' => '/photos/5(номер раздела)' и передаю в модель
public function search($params)
    {
            $query = Photos::find()->where(['action' => $params]);      

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

        $this->load($params);

        if (!$this->validate()) {
            // $query->where('0=1');
            return $dataProvider;
        }

  
        $query->andFilterWhere([
            'id' => $this->id,
            'action' => $this->action,
        ]);

        $query->andFilterWhere(['like', 'url', $this->url])
            ->andFilterWhere(['like', 'thumb', $this->thumb])
            ->andFilterWhere(['like', 'name', $this->name])
            ->andFilterWhere(['like', 'account', $this->account]);

        return $dataProvider;
    }

Нужны любые мысли. Вообще любые, вплоть до "бросай ты это дело"
  • Вопрос задан
  • 270 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы