1

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

public $hasMany = array(
'myClassname' => array(
'className'     => 'myClassname',
'foreignKey'    => 'foreignid'
'conditions'    => array('myClassname.id' => <this should be the value of the sessionvariable>),
)
);

有人可以给我吗?谢谢你

4

2 回答 2

1

将此条件放在您的控制器中,就在查找条件之前:

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

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

于 2013-07-15T04:37:29.750 回答
0

这是一个“clou” :)

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

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

于 2013-07-14T21:47:13.863 回答