【发布时间】:2010-06-29 19:50:51
【问题描述】:
我最近开始使用 CakePHP 并尝试定义用户特定的“字段”首选项。基本上,我希望每个用户都能够指定他/她想在表格中看到哪些字段。
为此,我有一个 users 表、一个 fields 表和一个 fields_users 表。最后一个表只是一个 field_id 和 user_id,因此代码知道将该字段与该用户链接。
到目前为止,我已经为“用户”创建了一个控制器/模型,并为“字段”创建了一个控制器/模型,并将它们与 hasAndBelongsToMany 属性链接起来。例如,在“字段”模型中,我定义了以下属性:
` var $hasAndBelongsToMany = 数组 (
'User' => array (
'className' => 'User',
'foreign_key' => 'field_id',
'join_table' => 'fields_users',
'fields' => array( 'User.id' ),
'conditions' => array( 'User.id' => 2 ),
'unique' => false,
) );`
正如您在上面看到的,数组的“条件”部分中的“User.id”是硬编码的。
我的问题是这样的:我怎样才能使这个属性的“条件”部分设置为当前用户的 id?
显然,我只关心当前用户的字段偏好,但目前我正在获取每个人的用户信息。
在初始属性定义中将其设置为变量不起作用,我不确定我应该在什么时候这样做(或者是否有更好的方法)。 (在 beforeFilter 中这样做没有用,我似乎无法从模型的 __construct 函数中访问 $_SESSION)
【问题讨论】: