使用HABTM时出现“缺少数据库表”错误

时间:2013-04-28 10:57:11

标签: cakephp has-and-belongs-to-many

我在Cakephp中遇到HABTM问题。

有两种模式:用户(音乐家)和流派。 并且有三个表:users,genres,genres_users(id(primary),genre_id,user_id)。

在用户中写道:

<?php
public $hasAndBelongsToMany = array(
        'Genre' => array(
            'className' => 'Genre',
            'joinTable' => 'genres_users',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'genre_id',
        ),
    );

但结果我得到了“丢失数据库表”。 我做错了什么?

感谢。

UPD 用户模型

class User extends AppModel {

    public $primaryKey = 'id';

    public $hasOne = array(
        'PerformerProfile' => array(
            'className' => 'PerformerProfile',
            'dependent' => false,
        ),

        'OrganizerProfile' => array(
            'className' => 'OrganizerProfile',
            'dependent' => false,
        ),
    );

    public $hasAndBelongsToMany = array(
        'Genre' => array(
            'className' => 'Genre',
            'joinTable' => 'genres_users',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'genre_id',
            'unique' => 'keepExisting',
        ),
    );
}

体裁模型:

class Genre extends AppModel {

    public $primaryKey = 'id';

}

1 个答案:

答案 0 :(得分:0)

答案很简单。

错误发生在AppModel

是:

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct();

必须:

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table ,$ds);