获取所有带条件的记录,以便我可以在 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