连接表与cakephp中的主表没有直接关系

时间:2014-03-11 07:18:53

标签: sql cakephp has-one

我有三个表,结构类似于下面的表:

employees    offices    postings
________   ________  ___________
id           id       employees_id  
name         name     offices_id

所以我想知道如何从Employee模型中获取办公室名称。将office放在$hasOne数组shows Unknown column 'office.employees_id' in 'on clause'中。如何在结果中获取办公室名称?

1 个答案:

答案 0 :(得分:1)

如果你想坚持你的数据库,你可能会使用has并且属于许多关系。 在employee.php中:

   public $hasAndBelongsToMany = [
       'Office'=> [
            'foreign_key' => 'employees_id',
            'joinTable' => 'postings',
            'associationForeignKey' => 'offices_id',
       ]
   ];

然后你可以从员工模式上任。

我真正想要建议的是将office_id列放在employees表中,然后将

放入
$public $belongsTo = ['office'];

在您的员工模型中。

PS:在PHP 5.4或更高版本中支持括号[],如果您使用的是php 5.3或更低版本,则可能需要将其替换为array()