我知道这很不寻常,但我想要一个对每条记录来说都是唯一的cgridview,或者是另一种做我想做的事情的方法......
我有一个显示病人名单的cgridview
单击视图按钮时,它将进入视图页面...我的视图页面在侧栏上有一个操作,名为"显示该患者的病人记录"我希望它从另一个模型重定向到另一个cgridview。
现在的问题是cgridView显示所有患者记录,而不仅仅是患者的记录,用户查看。
有没有办法获取最近查看的患者记录的ID,以便我可以为此提出一个新的dataProvider?
注意我需要最近查看的患者的ID,而不是登录用户的ID,所以我不能使用
Yii::app()->user->id;
我希望得到任何帮助或其他替代方案......
答案 0 :(得分:0)
// model view id
$id=$model->id;
答案 1 :(得分:0)
在Manage Patients
网格视图上单击视图按钮时,在该视图页面中,我希望您设置新的菜单项,类似于:
array('label'=>'Display Patient Records', 'url'=>array('/controller/patientRecord','id'=>Yii::app()->request->getParam('id');)),
此处Yii::app()->request->getParam('id');
将返回正在查看的患者的ID controller
是您的控制器名称,patientRecord
是您的操作名称,它将返回患者记录的网格视图。< / p>
在动作patientRecord
中,只需渲染新的网格视图,将患者id值传递给视图,在模型中创建一个新函数,类似于模型中的普通search
函数,只需添加一个条件:
$criteria->condition = "patient_id='$id' ";
当您在网格视图页面中调用model->search()
时,请传递您拥有的id
,例如:$model->search($id),
我希望这会给你一个想法。 :)
答案 2 :(得分:0)
由于您已经为每条记录创建了不同的ID,因此您只需要将它们放在控制器中,例如$chosenRecord = modelName::model()->findByPk($idOfChosenRecord);
您将渲染到第二个视图,因此model()
无法创建问题。
确保其他模型包含与之关系的$ id。您可能需要考虑使用第二个控制器。