根据条件yii2连接查询时输出错误

时间:2018-02-06 08:05:59

标签: yii yii2 yii2-advanced-app yii2-basic-app yii2-model

我的查询如下

 $query= (new Query())->select(['title'])
               ->from('projects')
               ->join('LEFT JOIN', 'user AS u', 'p.user_ref_id=u.user_id')
               ->where('p.created_date >= STR_TO_DATE('.'"'.$fmonth.'"'.', "%d-%b-%Y")')
               ->andWhere('p.created_date <= DATE_ADD(STR_TO_DATE('.'"'.$tmonth.'"'.', "%d-%b-%Y"), INTERVAL 1 DAY)')->all();

如果我打印变量$ query,我的输出低于输出

   Array ( [0] => Array ( [title] => test project 1))

但如果我写下面的代码

  $query= (new Query())->select(['title'])
               ->from('projects AS p')
               ->join('LEFT JOIN', 'user AS u', 'p.user_ref_id=u.user_id')
               ->where('p.created_date >= STR_TO_DATE('.'"'.$fmonth.'"'.', "%d-%b-%Y")')
               ->andWhere('p.created_date <= DATE_ADD(STR_TO_DATE('.'"'.$tmonth.'"'.', "%d-%b-%Y"), INTERVAL 1 DAY)');
 if(!empty($status)){
  $query->andWhere(['p.project_status' => 1]);
 }
 $query->all();

当我打印上述代码的$ query时。我得到的输出是

 yii\db\Query Object ( [select] => Array ( [0] => p.title [1]) [selectOption] => [distinct] => [from] => Array ( [0] => projects AS p ) [join] => Array ( [0] => Array ( [0] => LEFT JOIN [1] => user AS u [2] => p.user_ref_id=u.user_id) )....

当我尝试拆分查询并连接时,为什么会得到此对象/数组格式。是否有任何其他方式来执行以获得类似

的格式
  Array ( [0] => Array ( [title] => test project 1))

1 个答案:

答案 0 :(得分:0)

如果我在第一种情况下正确理解您正在打印all()方法的结果,而在第二种情况下,您正在打印Query对象,因为在打印时没有调用all()变量,而不是对象本身,因此结果丢失。

如果你在第二种情况下打印$query->all(),你会得到你想要的。