我在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';
}
答案 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);