Database 保存方法don';在cakephp3中,当我的表中同时有x和x_id字段时,就不能工作了

Database 保存方法don';在cakephp3中,当我的表中同时有x和x_id字段时,就不能工作了,database,cakephp-3.0,Database,Cakephp 3.0,我的用户表中既有language字段,也有language\u id字段。当我想保存数据时,save方法返回false //Table/UsersTable.php $this->belongsTo('Languages', [ 'alias' => 'Languages', 'foreignKey' => 'language_id' ]); 当我从数据库中删除此代码或删除语言字段时,save方法可以正常工作。是的,请记住CakePHP保留一个属性名,它将在其

我的用户表中既有
language
字段,也有
language\u id
字段。当我想保存数据时,save方法返回
false

//Table/UsersTable.php
$this->belongsTo('Languages', [
    'alias' => 'Languages',
    'foreignKey' => 'language_id'
]);

当我从数据库中删除此代码或删除语言字段时,save方法可以正常工作。

是的,请记住CakePHP保留一个属性名,它将在其中存储每个关联的关联数据。在您的情况下,对于
语言
关联,它将使用
语言
属性。如果已有同名字段,则可以将关联配置为使用其他属性名:

$this->belongsTo('Languages', [
    'alias' => 'Languages',
    'foreignKey' => 'language_id',
    'propertyName' => 'preferred_language'
]);
就我个人而言,我会坚持惯例,在数据库中没有
语言
字段,当您已经有
语言id
字段时,这没有什么意义