CakePHP:有没有办法在hasAndBelongsToMany的定义中包含变量?

时间:2010-06-29 19:50:51

标签: cakephp model

我最近开始使用CakePHP,并尝试定义特定于用户的“字段”首选项。基本上,我希望每个用户能够指定他/她想要在表中看到哪些字段。

为此,我有一个users表,一个fields表和一个fields_users表。最后一个表只是一个field_id和user_id,因此代码知道将该字段与该用户链接。

到目前为止,我已经为'User'创建了一个控制器/模型,为'Fields'创建了一个控制器/模型,并将它们与hasAndBelongsToMany属性相关联。例如,在“Field”模型中,我定义了以下属性:

`     var $ hasAndBelongsToMany = array(

  '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”是硬编码的。

我的问题是这个:我怎样才能将此属性的'conditions'部分设置为当前用户的id?

显然,我只关心当前用户的字段偏好,但目前我收到了每个人的用户信息。

将它设置为初始属性定义中的变量不起作用,我不确定我应该在什么时候这样做(或者如果有更好的方法)。 (在beforeFilter中执行它不起作用,我似乎无法从模型的__construct函数访问$ _SESSION)

1 个答案:

答案 0 :(得分:0)

Do it from the controller。您可以按$this->Auth->user('id')获取当前用户ID。