我有一个用于标准化的表,叫做Sharing
该表的内容是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;
我得到了一个"试图获得非对象的属性"错误。
有人可以帮忙吗?
答案 0 :(得分:0)
您肯定会收到错误,因为findAll()
方法会返回对象数组。
应该是:
$share = $shareModel[0]->pr_id;
我强烈建议您使用模型关系和dataprovider
。