基于 if 条件 yii2 连接查询时输出不正确

incorrect output while concatenating query based on if condition yii2

我有如下查询

 $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) )....

当我尝试拆分查询并连接时,为什么会得到这种 object/array 格式。是否有任何其他方法可以执行与

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

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

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