Cakephp 4:如何保存 hasone 数据
Cakephp 4 : How to save hasone data
我有两个数据库 table 1) 用户 2) 配置文件
配置文件有一个名为 bank_ac
的字段
我正在尝试从用户模型中保存它。
我创建了像
这样的表单输入
<?= $this->Form->create($user) ?>
<?= $this->Form->control('profile.bank_ac'); ?>
<?= $this->Form->end() ?>
我添加了关联的用户模型
$this->hasOne('Profiles');
调试后得到类似
的数据
[
'name' => 'Jone',
'email' => 'abcd@yahoo.com',
'profile' => [
'bank_ac' => '1212212'
]
]
调试补丁实体后
object(App\Model\Entity\User) {
'name' => 'Jone',
'email' => 'abcd@yahoo.com',
'[new]' => true,
'[accessible]' => [
'name' => true,
'email' => true,
'created' => true,
'modified' => true
],
'[dirty]' => [
'name' => true,
'email' => true,
'profile' => true
],
'[original]' => [],
'[virtual]' => [],
'[hasErrors]' => false,
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Users'
}
在 UsersController/add 中,我应用了像
这样的代码
public function add(){
$user = $this->Users->newEmptyEntity();
$user = $this->Users->patchEntity($user, $this->request->getData());
$this->Users->save($user, ['associated' => ['Profiles']]);
}
配置文件数据未保存,也未收到任何错误。如何保存此关联数据?
查看您的实体调试结果,可访问性配置中缺少 profile
字段,因此不允许在批量分配(修补)中使用它。
将它添加到您的 User::$_accessible
属性,它应该可以工作:
protected $_accessible = [
// ...
'profile' => true,
];
另见
我有两个数据库 table 1) 用户 2) 配置文件
配置文件有一个名为 bank_ac
的字段我正在尝试从用户模型中保存它。
我创建了像
这样的表单输入<?= $this->Form->create($user) ?>
<?= $this->Form->control('profile.bank_ac'); ?>
<?= $this->Form->end() ?>
我添加了关联的用户模型
$this->hasOne('Profiles');
调试后得到类似
的数据[
'name' => 'Jone',
'email' => 'abcd@yahoo.com',
'profile' => [
'bank_ac' => '1212212'
]
]
调试补丁实体后
object(App\Model\Entity\User) {
'name' => 'Jone',
'email' => 'abcd@yahoo.com',
'[new]' => true,
'[accessible]' => [
'name' => true,
'email' => true,
'created' => true,
'modified' => true
],
'[dirty]' => [
'name' => true,
'email' => true,
'profile' => true
],
'[original]' => [],
'[virtual]' => [],
'[hasErrors]' => false,
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Users'
}
在 UsersController/add 中,我应用了像
这样的代码public function add(){
$user = $this->Users->newEmptyEntity();
$user = $this->Users->patchEntity($user, $this->request->getData());
$this->Users->save($user, ['associated' => ['Profiles']]);
}
配置文件数据未保存,也未收到任何错误。如何保存此关联数据?
查看您的实体调试结果,可访问性配置中缺少 profile
字段,因此不允许在批量分配(修补)中使用它。
将它添加到您的 User::$_accessible
属性,它应该可以工作:
protected $_accessible = [
// ...
'profile' => true,
];
另见