我按其他模块的方法查询 查询出了数据,但是只能展示其中一列,想展示另外一列的时候就报错,我之后再次执行了一次同样的指令(列名改变) ,数据查出来了,但是把上一条查询出来的数据覆盖掉了如;
首先在模块中定义查询的数组:
public function getTableFieldArr(){
$table_th_bar = [
[
'orderField' => $this->_primaryKey,
'label' => 'ID',
'width' => '50',
'align' => 'center',
],
[
'orderField' => 'url_order',
'label' => '链接订单',
'width' => '50',
'align' => 'center',
],
];
return $table_th_bar;}
接着在服务中调用方法
protected function actionColl($filter = '')
{
$query=$this->_spreadModel->find();
$query->select(array('*','(select msg from '.$this->_msgModel->tableName().' as message where msg_id=message.id) as user_msg));
$query = Yii::$service->helper->ar->getCollByFilter($query, $filter);
//var_dump($query->all());exit;
return [
'coll' => $query->all(),
'count'=> $query->limit(null)->offset(null)->count(),
];
}
这样我就可以查询出$this->_msgModel中的msg列的数据
如果我再次调用$query->select()查询其他列,之前的数据就会被覆盖。
如果我想同时展示$this->_msgModel中两列或者更多列数据 应该怎么查询呢?
我尝试过
$query->select(array('*','(select msg,spread_type from '.$this->_msgModel->tableName().' as message where msg_id=message.id) as user_msg,spread_type'));
但是这样会报错。