当我在 cakephp 3 中的 table 中同时具有 x 和 x_id 字段时,保存方法不起作用
Save method don't work when I have both x and x_id fields in my table in cakephp 3
我的用户 table 中有 language
和 language_id
字段。当我想保存我的数据时,保存方法 returns false
.
//Table/UsersTable.php
$this->belongsTo('Languages', [
'alias' => 'Languages',
'foreignKey' => 'language_id'
]);
当我删除此代码或从数据库中删除语言字段时,保存方法正常工作。
是的,请记住 CakePHP 保留了一个 属性 名称,它将在其中存储每个关联的关联数据。在您的例子中,对于 Languages
关联,它将使用 language
属性。如果您已有同名字段,您可以将关联配置为使用另一个 属性 名称:
$this->belongsTo('Languages', [
'alias' => 'Languages',
'foreignKey' => 'language_id',
'propertyName' => 'preferred_language'
]);
就我个人而言,我会坚持惯例,在数据库中没有 language
字段,当您已经有 language_id
字段时,这就没有什么意义了。
我的用户 table 中有 language
和 language_id
字段。当我想保存我的数据时,保存方法 returns false
.
//Table/UsersTable.php
$this->belongsTo('Languages', [
'alias' => 'Languages',
'foreignKey' => 'language_id'
]);
当我删除此代码或从数据库中删除语言字段时,保存方法正常工作。
是的,请记住 CakePHP 保留了一个 属性 名称,它将在其中存储每个关联的关联数据。在您的例子中,对于 Languages
关联,它将使用 language
属性。如果您已有同名字段,您可以将关联配置为使用另一个 属性 名称:
$this->belongsTo('Languages', [
'alias' => 'Languages',
'foreignKey' => 'language_id',
'propertyName' => 'preferred_language'
]);
就我个人而言,我会坚持惯例,在数据库中没有 language
字段,当您已经有 language_id
字段时,这就没有什么意义了。