2017-04-26 96 views
0

我需要用yii2框架来做到这一点,我无法在网上找到任何东西。如何在活动记录的yii2框架中做子查询?

我需要这样一个地方内执行与 'AND' 和 'OR':

$query->andFilterWhere(['like', 'fecha_creacion', $this->fecha_creacion]) 
      ->andFilterWhere(['like', 'fecha_reapertura', $this->fecha_reapertura]) 
      ->andFilterWhere(['like', 'fecha_clausura', $this->fecha_clausura]) 
      ->andFilterWhere(['like', 'observacion', $this->observacion]) 
      ->andFilterWhere(function($query) { 
       $query->where(['like', 'estudiantes.nombres', $this->estudiante]); 
       $query->orWhere(['like', 'estudiantes.apellidos', $this->estudiante]); 
      }); 

但这一点儿也不工作。所以我的问题是如何做到这一点?与当然积极的记录。

回答

1

试试这个:

$query->andFilterWhere(['like', 'fecha_creacion', $this->fecha_creacion]) 
      ->andFilterWhere(['like', 'fecha_reapertura', $this->fecha_reapertura]) 
      ->andFilterWhere(['like', 'fecha_clausura', $this->fecha_clausura]) 
      ->andFilterWhere(['like', 'observacion', $this->observacion]) 
      ->andFilterWhere([ 'OR', 
           ['like', 'estudiantes.nombres', $this->estudiante], 
           ['like', 'estudiantes.apellidos', $this->estudiante] 
      ]); 
+0

惊人!你是在哪里找到那个东西的 ?它工作得很好。谢谢! –