如何获取最近查看过的记录的id来执行yii中每条记录唯一的cgridview?

时间:2015-09-27 15:26:09

标签: php mysql yii view cgridview

我知道这很不寻常,但我想要一个对每条记录来说都是唯一的cgridview,或者是另一种做我想做的事情的方法......

我有一个显示病人名单的cgridview

enter image description here

单击视图按钮时,它将进入视图页面...我的视图页面在侧栏上有一个操作,名为"显示该患者的病人记录"我希望它从另一个模型重定向到另一个cgridview。

现在的问题是cgridView显示所有患者记录,而不仅仅是患者的记录,用户查看。

有没有办法获取最近查看的患者记录的ID,以便我可以为此提出一个新的dataProvider?

注意我需要最近查看的患者的ID,而不是登录用户的ID,所以我不能使用

Yii::app()->user->id;

我希望得到任何帮助或其他替代方案......

3 个答案:

答案 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。您可能需要考虑使用第二个控制器。