【问题标题】:How to get the id of recently viewed record to do a cgridview which is unique to each record in yii?如何获取最近查看记录的 id 来执行 yii 中每条记录唯一的 cgridview?
【发布时间】:2015-09-27 15:26:09
【问题描述】:

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

我有一个显示患者列表的 cgridview

当点击查看按钮时,它将进入查看页面...我的查看页面在侧边栏上有一个名为“显示该患者的患者记录”的操作,我希望它从另一个模型重定向到另一个 cgridview。

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

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

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

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

我将不胜感激任何帮助或实现此目标的其他替代方法...

【问题讨论】:

    标签: php mysql yii view cgridview


    【解决方案1】:

    当在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 是您的操作名称,它将返回患者记录的网格视图。

    在patientRecord 操作中,只需渲染将患者 ID 值传递给视图的新网格视图,在您的模型中创建一个新函数,类似于您在模型中的普通 search 函数,只需添加一个条件:

    $criteria->condition = "patient_id='$id' ";
    

    当您在网格视图页面中调用 model->search() 时,传递您拥有的 id,例如:$model->search($id),

    我希望这能给你一个想法。 :)

    【讨论】:

    • 很抱歉,您将患者 ID 值传递给视图是什么意思?
    • @anyabythestars 在您的网格视图(.php 文件)中,您必须将 id 传递给模型搜索,以仅返回具有患者 id $id 的记录,因此 @987654333 @ 在我的回答中。
    【解决方案2】:

    由于您已经为每条记录创建了不同的 id,您只需将它们放入控制器中,例如 $chosenRecord = modelName::model()->findByPk($idOfChosenRecord);

    您将渲染到您的第二个视图,因此model() 不会造成问题。 确保其他模型包含 $id 。您可能需要考虑使用第二个控制器。

    【讨论】:

      【解决方案3】:
      // model view id
      $id=$model->id;
      

      【讨论】:

      • 这并没有什么帮助,因为我需要我最近查看过的那个的 id,这意味着我正在为下一页移动到不同的模型..
      猜你喜欢
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 2023-03-10
      • 2021-10-04
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多