后台数据展示(多表联查)

问题咨询 · Tudou · 于 6年前 发布 · 2872 次阅读

我按其他模块的方法查询 查询出了数据,但是只能展示其中一列,想展示另外一列的时候就报错,我之后再次执行了一次同样的指令(列名改变) ,数据查出来了,但是把上一条查询出来的数据覆盖掉了如;

首先在模块中定义查询的数组:

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'));

但是这样会报错。

共收到 5 条回复
Tudou#16年前 0 个赞

解决了 尝试了多重办法之后,最后无心的一个技能解决了。

$query=$this->_spreadModel->find();
    $query->select(array('*','(select msg from '.$this->_msgModel->tableName().' as message where msg_id=message.id) as user_msg','(select spread_type from '.$this->_msgModel->tableName().' as message where msg_id=message.id) as spread_type'));

就是往数组总再次添加一个命令用逗号隔开

Tudou#26年前 0 个赞

探索真是有趣的事情啊。

Fecmall#36年前 0 个赞

为什么这么喜欢用sql语句?

Fecmall#46年前 0 个赞

SQL语句可读性太差,维护成本高,建议用active record

Fecmall#56年前 1 个赞

关于appadmin block index 部分的函数getTableFieldArr() 配置参数的说明,参看文档:

http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-appadmin-block-index.html

另外编辑部分的:http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-appadmin-block-edit.html

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics