0

我在 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',
        ),
    );

但结果我得到“缺少数据库表”。我究竟做错了什么?

谢谢。

更新 用户模型

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';

}
4

1 回答 1

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);
于 2013-04-29T20:20:00.093 回答