以下是我过去常用的链接CakePHP 3 Saving BelongsToMany Association Unknown type "" Error,但无法解决问题。
我有3张桌子:
当我在预订表中保存数据时,我得到上面提到的错误,见下图:
模型关联看起来像这样:
public function initialize(array $config)
{
parent::initialize($config);
$this->table('bookings_travelers');
$this->displayField('name');
$this->primaryKey('bPassID');
$this->belongsTo('Bookings', [
'foreignKey' => 'booking_id',
'joinType' => 'INNER'
]);
$this->belongsTo('Travelers', [
'foreignKey' => 'traveler_id',
'joinType' => 'INNER'
]);
}
public function initialize(array $config)
{
parent::initialize($config);
$this->table('bookings');
$this->displayField('idbooking');
$this->primaryKey('idbooking');
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
$this->belongsToMany('Travelers', [
'joinTable' => 'bookings_travelers',
]);
}
public function initialize(array $config)
{
parent::initialize($config);
$this->table('travelers');
$this->displayField('name');
$this->primaryKey('travelers_id');
$this->belongsToMany('Bookings', [
'joinTable' => 'bookings_travelers',
]);
}
答案 0 :(得分:5)
基本上我不得不重命名' idbooking'到了' id'只有在更改了数据库列名后,才有效。我的坏,一个愚蠢的错误。
答案 1 :(得分:1)
仅作记录,以相同的错误到达此处,而我的问题是,在创建表并运行后,我已重命名了PK字段
cake bake model table
。看来此命令将无法正确更新我们的Model / Table / tableTable.php文件,因此我不得不手动更新以下字段以与新的PK名称匹配:
$this->setDisplayField('newpkname');
$this->setPrimaryKey('newpkname');
希望它对某人有帮助:)