会话变量作为CakePHP模型中关联的条件

时间:2013-07-14 20:24:43

标签: cakephp session-variables

我搜索了很多,但我很无奈。 我尝试在模型内的hasMany关联中使用session变量作为条件。 像这样(在模型中)

public $hasMany = array(
'myClassname' => array(
'className'     => 'myClassname',
'foreignKey'    => 'foreignid'
'conditions'    => array('myClassname.id' => <this should be the value of the sessionvariable>),
)
);
请问有人可以给我一个clou吗? 谢谢

2 个答案:

答案 0 :(得分:1)

在查找条件之前将此条件置于控制器中:

$this->ModelName->bindModel(array('hasMany' => array('myClassname' => array('className' => 'myClassname',
                                                                            'foreignKey' => 'foreignid',
                                                                            'conditions'    => array('myClassname.id' => $this->Session->read('SessionVar'))
                                            ))), false);

您也可以在beforeFind()回调中使用此动态关联。

答案 1 :(得分:0)

这是一个“clou”:)

$hasMany是一个数组,因此它不能具有“动态”值,即根据某些代码而改变的值。

如果你不能这样做(比如在你的发现中使用适当的conditions),你需要使用回调Model::beforeFind()来设置当前的会话ID。