Yii2 如何在GridView中从2表关系中筛选

Yii2 如何在GridView中从2表关系中筛选,yii2,Yii2,这里需要帮助。。 我正在尝试从2表关系查看gridview。我成功地将第一个表中的数据检索到gridview中,但没有成为过滤器。到目前为止,这就是我所做的 public function search($params) { $query = Smwp::find() ->joinWith('mfwpData'); // add conditions that should always apply

这里需要帮助。。 我正在尝试从2表关系查看gridview。我成功地将第一个表中的数据检索到gridview中,但没有成为过滤器。到目前为止,这就是我所做的

public function search($params)
{
    $query = Smwp::find()                          
           ->joinWith('mfwpData');

    // 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,
        'id_sm_wp' => $this->id_sm_wp,
        'tgl_surat' => $this->tgl_surat,
        'tgl_terima' => $this->tgl_terima,
        'tgl_cetak' => $this->tgl_cetak,
        'no_agenda' => $this->no_agenda,
        'index_hal' => $this->index_hal,
        'index_cetak' => $this->index_cetak,

    ]);

    $query->andFilterWhere(['like', 'no_surat', $this->no_surat])            
        ->andFilterWhere(['like', 'judul_hal', $this->judul_hal])
        ->andFilterWhere(['like', 'lokasi_scan', $this->lokasi_scan])
        ->andFilterWhere(['like', 'ket_dispo', $this->ket_dispo])
        ->andFilterWhere(['like', 'mfwpData.npwp', $this->id_mfwp])                                     
        ;

    return $dataProvider;
}
这里是规则函数。iam将id_mfwp插入安全部件

    public function rules()
    {
    return [
        [['id', 'id_sm_wp', 'no_agenda', 'index_hal', 'index_cetak'], 
        'integer'],
        [['tgl_surat', 'tgl_terima', 'tgl_cetak', 'no_surat', 'judul_hal', 
        'lokasi_scan', 'ket_dispo', 'íd_mfwp'], 'safe'],
    ];
    }
这是我在模型中的关系

    public function getMfwpData()
   {
     return $this->hasOne(Mfwp::className(), ['id' => 'id_sm_wp']);
   }


   public function getNamaUser()
   {
     return $this->hasOne(Mfwp::className(), ['id' => 'id_sm_wp'])- 
     >with(['pejabat']);
   }
下面是我索引中的代码:

         ['attribute'=>'id_mfwp',
         'label'=>'NPWP',
         'format'=>'raw',
         'value'=>'mfwpData.npwp'],

         ['attribute'=>'id_mfwp',
         'label'=>'Nama Wajib Pajak',
         'format'=>'raw',
          'value'=>'mfwpData.nama_wp'],

         ['attribute'=>'id_mfwp',
         'label'=>'Nama AR',
         'format'=>'raw',
         'value'=>'namaUser.pejabat.nama'],   

我仍然无法在gridview中显示筛选器。感谢您的帮助

所以您的问题是如何使用关系对gridview进行排序?并且您对gridview中的所有3列都使用了相同的属性,这是不正确的。请参阅本文并相应地调整搜索。这是一个多么棒的搜索啊。。现在我知道你是易学大师。。为什么我不能在最后6小时内搜索此页面?谢谢我的兄弟。。愿真主赐予你仁慈和巴罗卡..请帮我回答下一个问题..哈哈