Cakephp 3.0 保存关联模型
Cakephp 3.0 Save associated model
我正在学习 cakePHP 3.0,在我的模型上保存关联数据时遇到一些问题。
我尝试用 ClientPreferences 的关联数据保存一个 Client
客户端表
class ClientsTable extends Table
{
public function initialize(array $config)
{
(...)
$this->belongsTo('ClientPreferences', [
'foreignKey' => 'client_preferences_id'
]);
}
}
客户端控制器
$aClient = $this->Clients->newEntity();
$aClient = $this->Clients->patchEntity($aClient, $this->request->data);
$aClientPreference = $this->Clients->ClientPreferences->newEntity();
$aClientPreference->my_field = 'my value';
$aClient->ClientPreferences = $aClientPreference;
$this->Clients->save($aClient, ['associated' => ['ClientPreferences']];
Client 实体已正确保存,但关联的 ClientPreferences 实体未正确保存,并且 Cake 没有抛出任何错误。
我试着遵循这个:
http://book.cakephp.org/3.0/en/orm/saving-data.html#saving-with-associations
但是还没有找到任何问题来正确地完成它。
有人有什么建议吗?
提前致谢。
惯例,惯例,惯例
您链接的示例明显不同,仔细查看 属性 名称,如果向下滚动一点,您会找到专门针对 belogsTo
个协会。
When saving belongsTo associations, the ORM expects a single nested entity at the singular, underscored version of the association name. For example:
[...]
Cookbook > Saving Data > Saving BelongsTo Associations
因此对于 belongsTo
关联,属性 名称默认为小写和下划线,即 $aClient->client_preference
.
顺便说一下,您的外键应该是。为了符合惯例,也必须是单数,即 client_preference_id
,即使它只是导致问题的 属性 名称。
另见 Cookbook > Associations > BelongsTo Associations(尤其是 foreignKey
和 propertyName
选项)
如果您有额外的加入数据要保存,请查看:
Cakephp 3 - Save associated belongsToMany (joinTable)
手册中没有对此进行解释!
我正在学习 cakePHP 3.0,在我的模型上保存关联数据时遇到一些问题。
我尝试用 ClientPreferences 的关联数据保存一个 Client
客户端表
class ClientsTable extends Table
{
public function initialize(array $config)
{
(...)
$this->belongsTo('ClientPreferences', [
'foreignKey' => 'client_preferences_id'
]);
}
}
客户端控制器
$aClient = $this->Clients->newEntity();
$aClient = $this->Clients->patchEntity($aClient, $this->request->data);
$aClientPreference = $this->Clients->ClientPreferences->newEntity();
$aClientPreference->my_field = 'my value';
$aClient->ClientPreferences = $aClientPreference;
$this->Clients->save($aClient, ['associated' => ['ClientPreferences']];
Client 实体已正确保存,但关联的 ClientPreferences 实体未正确保存,并且 Cake 没有抛出任何错误。
我试着遵循这个: http://book.cakephp.org/3.0/en/orm/saving-data.html#saving-with-associations
但是还没有找到任何问题来正确地完成它。 有人有什么建议吗?
提前致谢。
惯例,惯例,惯例
您链接的示例明显不同,仔细查看 属性 名称,如果向下滚动一点,您会找到专门针对 belogsTo
个协会。
When saving belongsTo associations, the ORM expects a single nested entity at the singular, underscored version of the association name. For example: [...]
Cookbook > Saving Data > Saving BelongsTo Associations
因此对于 belongsTo
关联,属性 名称默认为小写和下划线,即 $aClient->client_preference
.
顺便说一下,您的外键应该是。为了符合惯例,也必须是单数,即 client_preference_id
,即使它只是导致问题的 属性 名称。
另见 Cookbook > Associations > BelongsTo Associations(尤其是 foreignKey
和 propertyName
选项)
如果您有额外的加入数据要保存,请查看: Cakephp 3 - Save associated belongsToMany (joinTable)
手册中没有对此进行解释!