使用连接查询时字符串偏移量'id'非法

jecbmhm3  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(302)

我在yii框架中遇到一些问题。我需要将连接查询结果显示到我的视图页 pdtview 。但显示此结果数组时出错。下面是我的 controller page code .

public function actionPdtview()
   {
        $model=new Products;
        $models=Products::model()->findAll();

        $rows = Yii::app()->db->createCommand()
        ->select('category.ctg,category.cid, products.*')
        ->from('category')
        ->join('products','category.cid = products.cid')
        ->queryRow();
//    print_r($rows);die;
            $this->render('pdtview',array('model'=>$rows));

       }

并查看下面给出的页面代码

<table>
<tr>
    <th>sl.no</th>
    <th>Category</th>
    <th>Product</th>
</tr>

 <?php 
//    print_r($model);die;
      foreach($model as $row)
      {
    ?>
    <tr>
        <td><?php echo $row['id']; ?></td>
        <td><?php echo $row['ctg']; ?></td>
        <td><?php echo $row['pdt']; ?></td>
    </tr>
    <?php
      }
      ?>
</table>

我试图使用print\r()显示查询结果,然后获得正确的输出。但是在表格式中,我没有得到相同的结果。只得到错误: Illegal string offsets 'id' 。请帮我解决这个问题。提前谢谢大家。 print_r($model) 输出(来自评论):

Array ( 
    [ctg] => Flowers 
    [cid] => 1 
    [id] => 1 
    [pdt] => lilly 
)
nbewdwxp

nbewdwxp1#

我想你想用 queryAll 因为 queryRow 只获取第一行。

public function actionPdtview()
   {
        $model=new Products;
        $models=Products::model()->findAll();

        $rows = Yii::app()->db->createCommand()
        ->select('category.ctg,category.cid, products.*')
        ->from('category')
        ->join('products','category.cid = products.cid')
        ->queryAll();
        //  print_r($rows);die;
            $this->render('pdtview',array('model'=>$rows));

       }

这可能会返回一个对象数组,您可以访问该数组,以便:

<tr>
        <td><?php echo $row->id; ?></td>
        <td><?php echo $row->ctg; ?></td>
        <td><?php echo $row->pdt; ?></td>
    </tr>

相关问题