“cakephp 3,保存不工作,未知类型”

时间:2016-11-14 08:24:17

标签: cakephp-3.0

以下是我过去常用的链接CakePHP 3 Saving BelongsToMany Association Unknown type "" Error,但无法解决问题。

我有3张桌子:

  1. 预订
  2. 游客
  3. BookingsTravelers
  4. 当我在预订表中保存数据时,我得到上面提到的错误,见下图:

    enter image description here

    模型关联看起来像这样:

    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',
        ]);
    }
    

2 个答案:

答案 0 :(得分:5)

基本上我不得不重命名' idbooking'到了' id'只有在更改了数据库列名后,才有效。我的坏,一个愚蠢的错误。

答案 1 :(得分:1)

仅作记录,以相同的错误到达此处,而我的问题是,在创建表并运行后,我已重命名了PK字段 cake bake model table。看来此命令将无法正确更新我们的Model / Table / tableTable.php文件,因此我不得不手动更新以下字段以与新的PK名称匹配:

    $this->setDisplayField('newpkname');
    $this->setPrimaryKey('newpkname');

希望它对某人有帮助:)