Cakephp HABTM协会无法正常工作

时间:2014-06-23 21:40:19

标签: php cakephp

我需要一个治疗师有很多孩子的协会,反之亦然。

我有3张桌子:

治疗师 孩子 children_therapists

您可以在下面看到该关联:

Therapist.php

 public $hasAndBelongsToMany = array('Child' =>
                array(
                               'className' => 'Children',
                               'joinTable' => 'children_therapists',
                               'foreignKey' => 'therapist_id',
                               'associationForeignKey' => 'child_id',
                               'unique' => true,
                               'conditions' => '',
                               'fields' => '',
                               'order' => 'Child.last_name',
                               'limit' => '',
                               'offset' => '',
                               'finderQuery' => '',
                               'with' => ''
                           )
    );

在Child.php模型中,我尝试了这段代码:

public $useTable = 'children';

但这没效果。

当我对它编码时,我收到以下错误:

缺少数据库表

错误:在数据源默认值中找不到模型Child的表子项。

非常感谢任何帮助。

谢谢, 格雷格

1 个答案:

答案 0 :(得分:0)

未使用儿童模型

因为问题中的代码没有引用它。

public $hasAndBelongsToMany = array(
    'Child' => array(
       'className' => 'Children',
//                    ^ Supposed to be a model name

它引用了不存在的Children模型。

要突出显示数组键和className键的含义,请比较:

class User extends AppModel {

    public $hasAndBelongsToMany = array(
        'Friend' => array(
    //  ^ Whatever you want
           'className' => 'Child',
    //                    ^ A model name

一个简单的修复

要更正问题,只需替换

即可
'className' => 'Children'

'className' => 'Child'