1

我正在尝试在三个模型之间建立关系。我的模型是角色、职责和员工。从概念上讲,我相信我会这样建立关系:

员工表:

id:int PK

fName: varChar

lName: varChar

角色表:

roldId:int pk

角色名称:varChar

责任表:

reponsibilityId:PK int

责任名称:varChar

角色职责表:

role_responsibility_id:PK 整数

角色 ID:int FK

责任Id int FK

employee_role_responsibility 表:

id:int PK

role_responsibility_id int FK

employee_id:int FK

所以,我的问题是,如何在我的 CakePHP 模型中建模这些关系?这是我到目前为止所拥有的:

App::uses('AppModel', 'Model');
class Employee extends AppModel {
    public  $name = "Employee";
}

App::uses('AppModel', 'Model');
class Role extends AppModel {
    public  $name = "Role";

    public $hasAndBelongsToMany = array(
        'MemberOf' => array(
            'className' => 'Responsibility',
        )
    );
}

App::uses('AppModel', 'Model');
class Responsibility extends  AppModel {
    public  $name = "Responsibility";

    public $hasAndBelongsToMany = array(
        'MemberOf' => array(
            'className' => 'Role',
        )
    );
}

如何将 roles_responsbility 表与员工表连接起来?

谢谢

4

1 回答 1

1

我相信您正在寻找HasMany Through [see it in the CakePHP book],它基本上解释了您可以向连接表添加其他字段,为该连接表创建模型,并根据需要进行关联。

因此,在您的responsibilities_roles表格中,您将添加一个employee_id字段。

然后,您创建一个名为的模型RepsponsibilitiesRole并将其设置为belongsTo Employee.

您可以从字面上将其视为它自己的模型,因为这就是它的本质-因此您可以在其中创建方法,或通过它运行查找...等等等等。

于 2013-10-25T14:33:33.077 回答