获取所有带条件的记录,以便我可以在 cGridView yii 中显示它
Getting all records with a condition so I can display it in cGridView yii
我有一个 table 用于规范化,称为 Sharing
table的内容是share_id、pr_id(患者记录id)和doctor_id
我想pr_id看医生
所以我使用了这个代码...
$shareModel=Sharing::model()->findByAttributes(array('doctor_id'=>$doctor));
$share= $shareModel->pr_id;
然后我改变了我的模型:
$criteria->compare('pr_id',$this->pr_id);
进入这个:
$criteria->compare('pr_id',$share);
而且效果很好!但是,当我决定在一位医生下添加更多患者记录时......它仍然只会显示一条记录所以我不得不将代码更改为
$shareModel=Sharing::model()->findAll(
array(
'condition'=>'doctor_id=:doctor_id',
'params' => array(':doctor_id' => $doctor)
)
);
每当我尝试使用 print_r($shareModel) 对其进行测试时,我都会得到我想要的内容,但是当我添加此行时
$share= $shareModel->pr_id;
我收到 "Trying to get property of non-object" 错误。
有人可以帮忙吗?
你肯定会得到一个错误,因为findAll()
方法returns对象数组。
应该是:
$share = $shareModel[0]->pr_id;
我强烈建议您使用模型关系和 dataprovider
。
我有一个 table 用于规范化,称为 Sharing
table的内容是share_id、pr_id(患者记录id)和doctor_id
我想pr_id看医生
所以我使用了这个代码...
$shareModel=Sharing::model()->findByAttributes(array('doctor_id'=>$doctor));
$share= $shareModel->pr_id;
然后我改变了我的模型:
$criteria->compare('pr_id',$this->pr_id);
进入这个:
$criteria->compare('pr_id',$share);
而且效果很好!但是,当我决定在一位医生下添加更多患者记录时......它仍然只会显示一条记录所以我不得不将代码更改为
$shareModel=Sharing::model()->findAll(
array(
'condition'=>'doctor_id=:doctor_id',
'params' => array(':doctor_id' => $doctor)
)
);
每当我尝试使用 print_r($shareModel) 对其进行测试时,我都会得到我想要的内容,但是当我添加此行时
$share= $shareModel->pr_id;
我收到 "Trying to get property of non-object" 错误。
有人可以帮忙吗?
你肯定会得到一个错误,因为findAll()
方法returns对象数组。
应该是:
$share = $shareModel[0]->pr_id;
我强烈建议您使用模型关系和 dataprovider
。