我有以下方法:
public function actionIndex() {
$companyModel = Company::model()->findAll();
$supplierProductModel = SupplierProduct::model()->findAll();
$this->render('index', array(
'companyData' => $companyModel,
'supplierProductData' => $supplierProductModel,
));
}
这里我已经将模型对象传递给渲染函数,并希望在视图中访问这些对象(Active Relational Type),但是当我在视图中访问它时显示错误:
Trying to get property of non-object
查看文件(index.php)
echo $companyData->name . "\n";
echo $this->companyModel->phone . "\n";
echo $this->companyModel->fax . "\n";
echo $this->companyModel->cell . "\n";
任何帮助都将不胜感激。
答案 0 :(得分:1)
您需要在控制器/操作
中声明$ this-> companyModel$this->companyModel = Company::model()->findByPk($companyId);
使用Company :: model() - > findAll(),您可以在视图文件中迭代一系列公司模型。
foreach ($companyData as $companyModel) {
var_dump($companyModel->attributes);
}
答案 1 :(得分:1)
正在发生 findAll()
的becozfindAll()重新运行多维数组中 company 表的所有行,所以这里 $ companyData 是多维数组,现在更改索引中的代码,如下所示,
<?php
foreach ($companyData as $compSub)
{
echo $compSub->name . "\n";
echo $compSub->phone . "\n";
echo $compSub->fax . "\n";
echo $compSub->cell . "\n";
}
?>
如果您想要公司数据(单行),请更改您的查询
$companyModel = Company::model()->findByPk($id_Of_company);
//$companyModel is single dimensional array, it has all the info of a company.
发送此视图
$this->render('index', array(
'companyData' => $companyModel,
....................
));
现在您可以使用以下代码显示数据
echo $companyData->name . "\n";
echo $companyData->phone . "\n";
echo $companyData->fax . "\n";
echo $companyData->cell . "\n";
答案 2 :(得分:0)
您正试图从数据库获取所有条目,因为 findAll()会返回多维对象数组中的所有数据。如果您需要所有条目,您可以在视图文件中迭代它并且得到如图所示的结果
在视图文件中执行如图所示
<?php foreach($companyData as $value){
echo $vlaue->name . "\n";
echo $value->phone . "\n";
echo $value->fax . "\n";
echo $value->cell . "\n";
?>
通过这个,您可以获得表格中的所有条目
如果您想使用Cdbcriteria获取特定记录使用条件并传递该对象并获得单个结果