CakePHP中的模型关联帮助

时间:2014-05-08 09:27:12

标签: cakephp model model-associations

我目前正在使用CakePHP开发一个项目,用户可以在其中创建项目。每个项目只有一个管理员用户,但其他用户应该能够“查看”项目。我该如何为用户创建此“查看”选项? 我已经完成了以下模型关联: [用户模型] hasMany [Projects](当每个用户可以有很多项目时)。

我现在有点困惑,我不知道我应该创建什么额外的模型关联:/我认为属于一个或HasAndBelongsToMany,但我不确定:/你能帮助我吗?

提前谢谢你!

1 个答案:

答案 0 :(得分:1)

您需要有3个数据库表

  1. 用户
  2. 项目 - 此表需要有一个列(管理员),其中包含代表管理员用户的user_id
  3. usersprojects - 此表是用户和代表项目成员的项目之间的交叉引用表
  4. CakePHP模型

    <强> 用户

    public $useTable = 'users';
    public $hasMany = array(
        'ProjectAsAdmin' => array(
           'className' => 'Project')
      );
    public $hasAndBelongsToMany = array(
        'ProjectAsMember' => array(
           'className' => 'Project')
      );
    

    <强> 项目

    public $useTable = 'projects';
    public $hasAndBelongsToMany = array(
        'Member' => array(
           'className' => 'User')
     );
    public $belongsTo = array(
        'Administrator' => array(
           'className' => 'User',
           'foreignKey' => 'administrator'
         )
      );