2017-06-14 11 views
0

グリッドビューフィルタはカテゴリをフィルタリングしていません.nesserrayの場所にcategory_idを指定しましたが、category_idに基づいて投稿をフィルタリングしていません。ここ は、私のソースコードです:
ポスト - >こちらのindex.phpyii2グリッドフィルタリングが機能していません

<?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 

      'title', 
      [ 
      'attribute'=>'category_id', 
      'value'=>function($model) { 
      return $model->category->name; 
      }, 
      'filter'=>$category 
      ], 
       [ 
        'attribute'=>'user_id', 
        'value'=>function($model) { 
         return $model->user->fullname; 
        }, 
        'filter'=>$user, 
        'label'=>'user' 
       ], 

      'category.name', 
      'user.fullname', 
//   'user_id', 

//   'description', 
//   'content:html', 
      'count_view', 
      'status', 
      'created_at', 

      ['class' => 'yii\grid\ActionColumn'], 
     ], 
    ]); ?> 

とあるモデル/ postSearch.phpそれが働いた

<?php 

namespace app\models\search; 

use Yii; 
use yii\base\Model; 
use yii\data\ActiveDataProvider; 
use app\models\post; 

/** 
* PostSearch represents the model behind the search form about `app\models\post`. 
*/ 
class PostSearch extends post 
{ 
    /** 
    * @inheritdoc 
    */ 
    public function rules() 
    { 
     return [ 
      [['id', 'user_id','category_id', 'count_view'], 'integer'], 
      [['title', 'description', 'content', 'status', 'created_at'], 'safe'], 
     ]; 
    } 

    /** 
    * @inheritdoc 
    */ 
    public function scenarios() 
    { 
     // bypass scenarios() implementation in the parent class 
     return Model::scenarios(); 
    } 

    /** 
    * Creates data provider instance with search query applied 
    * 
    * @param array $params 
    * 
    * @return ActiveDataProvider 
    */ 
    public function search($params) 
    { 
     $query = post::find(); 

     // add conditions that should always apply here 

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

     $this->load($params); 

     if (!$this->validate()) { 
      // uncomment the following line if you do not want to return any records when validation fails 
      // $query->where('0=1'); 
      return $dataProvider; 
     } 

     // grid filtering conditions 
     $query->andFilterWhere([ 
      'id' => $this->id, 
      'category_id' => $this->category_id, 
      'user_id' => $this->user_id, 
      'count_view' => $this->count_view, 
      'created_at' => $this->created_at, 
     ]); 

     $query->andFilterWhere(['like', 'title', $this->title]) 
      ->andFilterWhere(['like', 'description', $this->description]) 
      ->andFilterWhere(['like', 'content', $this->content]) 
      ->andFilterWhere(['like', 'status', $this->status]); 

     return $dataProvider; 
    } 
} 
+0

これを見てください。https://stackoverflow.com/questions/35509747/yii2-gridview-implement-filter-and-sort-for-values-for-related-table-of-foreign – scaisEdge

+0

投稿は何ですか$カテゴリ? – tigrasti

答えて

0

、私はjQueryのファイル

をremovleしなければなりませんでした
関連する問題