Yii поиск дублированных результатов - PullRequest
0 голосов
/ 26 января 2019

Я новичок в Yii, и это не мой код

Когда я что-то ищу, результаты дублируются, Нравится результаты: product1 product1 product2 product2

И я уверен, что проблема исходит от контроллера, потому что я проверил вид.Контроллер:

public function actionIndex($q){



  $criteria=new CDbCriteria;
      $criteria->with=array('cat','postDesc');
  $criteria->together=true;
 // $criteria->compare('post.pack_type',2);
 $criteria->compare('cat.zone','Group',true);
 $criteria->compare('postDesc.name',$q,true);

 // $criteria->compare('category_id',$id); 


     $this->pageTitle = "The search resluts for:".$q;
Yii::app()->clientScript->registerMetaTag(Helpers::config('meta_keyword'), 'keywords');
Yii::app()->clientScript->registerMetaTag(Helpers::config('meta_description'), 'description');



$provider=new CActiveDataProvider('PostCategory', array(
         'pagination'=>array(
    'pageSize'=> Yii::app()->user->getState('pageSize',Yii::app()->params['defaultPageSize']),
),

        'criteria'=>$criteria,
         'sort' => array(
            'defaultOrder' => 't.post_id desc',
        ),

    ));




 $this->render('index',array(

        'dataProvider'=>$provider,
        'cat'=>$cat

    ));


}

public function actionItem($id){
    $model=Post::model()->findByPK((int)$id);

     $this->pageTitle = $model->desc->name;
Yii::app()->clientScript->registerMetaTag(Helpers::config('meta_keyword'), 'keywords');
Yii::app()->clientScript->registerMetaTag(Helpers::config('meta_description'), 'description');

    $images=PostImage::model()->findAll(array('condition'=>'post_id='.$id));
    $attrs=PostAttr::model()->findAll(array('condition'=>'post_id='.$id,'order'=>'post_attr_id'));
    $media=PostMedia::model()->findAll(array('condition'=>'post_id='.$id));
     $this->render('item',array(

        //'dataProvider'=>$provider,
        'model'=>$model,
        'images'=>$images,
        'attrs'=>$attrs,
        'media'=>$media,

    ));

}

Поэтому я хочу, чтобы он отправлял не два, а один результат каждого продукта.

1 Ответ

0 голосов
/ 26 января 2019

Это может произойти, если ваша модель содержит несколько записей, связанных с postDesc или cat.Решение может отличаться в зависимости от того, какого результата вы хотите достичь в этой ситуации, но наиболее простым из них, вероятно, является группировка по PostCategory полю секретного ключа:

$criteria->group = 't.id';
...