我在Yii框架中遇到了一些问题。我需要在我的视图页面pdtview
中显示连接查询结果。但是在显示这个结果数组时出现错误。这是我的controller page code
。< / p>
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
)
答案 0 :(得分:0)
我认为你想使用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>