我使用cakephp 3.8,我想保存我的实体在我的会话表,但是,模型返回给我一个错误,我不明白,因为你可以在屏幕截图上看到,我的“is_active”字段不是空的,她的值是真的.
这是我的模型中的验证规则:
public function validationDefault(Validator $validator)
{
$validator
->integer('id')
->allowEmpty('id', 'create');
$validator
->scalar('name')
->maxLength('name', 255)
->requirePresence('name', 'create')
->notEmpty('name');
$validator
->boolean('is_active')
->requirePresence('is_active', 'create')
->notEmpty('is_active');
return $validator;
}
这是我的密码
$session = $this->Sessions->newEntity(['session_state_id' => 'OPENED', 'section_id' => $section_id, 'is_active' => true]);
$this->Sessions->patchEntity($session, $this->getRequest()->getData());
$this->Sessions->save($session);
非常感谢你的帮助,
卢瓦
1条答案
按热度按时间j13ufse21#
你打了两次补丁,第二次“patchEntity()"会触发错误。修复你的代码,我会说不要打两次补丁,或者在数据中包含该字段,或者调整你的验证规则。
一般来说,每次“创建”和“编辑”都只打一次补丁。所以,在上面,你应该做的是:
创建操作的替代方法(需要实体来构建表单时):
在您的案例中,原因是:您正在设置“创建时”验证规则。但无论您多久打一次补丁,它仍然没有保存,因此同一个验证规则会被一次又一次地触发。