【问题标题】:how display sql query results using tbgridview in yii如何在 yii 中使用 tbgridview 显示 sql 查询结果
【发布时间】:2013-11-06 00:20:20
【问题描述】:

我想在 yii 中使用 tbgridview 显示这个 sql 查询。

这是我的控制器。

public function actionSVI(){
    $list = Workstation::model()->listSvi();
    $this->render('svi',array(
        'list'=>$list,
    ));
}

我的模型和 sql 查询。

public function listSvi(){
    $svi = Yii::app()->db->createCommand()
                ->select('*')
                ->from('workstation')
                ->where('ws_company_id=:id',array(':id'=>1))
                ->queryAll();

    return $svi;;
}

我目前正在使用此代码显示我的查询。

<?php 
foreach($list as $each){
    $company = Workstation::model()->findByPK($each['ws_id']);
    echo  "<tr><td>" . $company->companyName ."</td><td>". CHtml::link(CHtml::encode($company->ws_id), array('view','id'=>$company->ws_id))."</td><td>" .$company->branchName ."</td>","<td>". $company->departmentName. "</tr></td>";
    }               

?>

我只想使用这个 tbgridview 来显示它。

<?php $this->widget('bootstrap.widgets.TbGridView', array(
'type'=>'striped',
'dataProvider'=>$dataProvider,
'template'=>"{items}",
'columns'=>array(
            'companyName',
        'branchName',
        'departmentName',
        'ws_id',
    array(
        'class'=>'bootstrap.widgets.TbButtonColumn',
        'template'=>'{view}',
        'buttons'=>array(
                'view'=>array('icon'=>'icon-search'),
            ),
    ),
),
)); ?>
<?php $this->endWidget();?>

【问题讨论】:

    标签: php sql twitter-bootstrap yii


    【解决方案1】:

    我认为最简单的方法是创建一个CActiveDataProvider 并使用 that 作为小部件的 dataProvider。另外,如果Workstation 是一个活动记录,你可以这样做:

    $criteria = new CDbCriteria(
        array(
            'condition'=>"ws_company_id = '1'"
    ));
    
    $dataProvider = new CActiveDataProvider('Workstation',array('criteria'=>$criteria));
    

    或者类似的东西。

    然后将该对象发送到您的视图。

    【讨论】:

      【解决方案2】:

      如果您使用自己的 SQL 查询数据,请尝试CSqlDataProvider

      $count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM tbl_user')->queryScalar();
      $sql='SELECT * FROM tbl_user';
      $dataProvider=new CSqlDataProvider($sql, array(
          'totalItemCount'=>$count,
          'sort'=>array(
              'attributes'=>array(
                   'id', 'username', 'email',
              ),
          ),
          'pagination'=>array(
              'pageSize'=>10,
          ),
      ));
      // $dataProvider->getData() will return a list of arrays.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-19
        相关资源
        最近更新 更多