【发布时间】:2018-10-28 13:02:19
【问题描述】:
在表格上,我们可以有许多不同的验证,我们可以随意调用:
public function validationDefault(Validator $validator)
{
$validator
->requirePresence('title', 'create')
->notEmpty('title');
$validator
->allowEmpty('link')
->add('link', 'valid-url', ['rule' => 'url']);
...
return $validator;
}
public function validationUpdate($validator)
{
$validator
->add('title', 'notEmpty', [
'rule' => 'notEmpty',
'message' => __('You need to provide a title'),
])
->add('body', 'notEmpty', [
'rule' => 'notEmpty',
'message' => __('A body is required')
]);
return $validator;
}
然后我们可以这样称呼它:
$article = $articles->newEntity(
$this->request->getData(),
['validate' => 'update']
);
我的问题是,我正在构建一个自定义购物车,我想检查用户是否有产品,因此适合作为业务规则而不是数据验证。但我需要“手动”调用它(例如,不是通过save() 操作),因为我只需要在一些不改变用户数据的地方检查它。
而且,关于业务规则,书中提供的唯一例子就是把它们放在buildRules()方法中。
那么,有没有办法拥有多个业务规则,例如如何完成数据验证,并称之为“手动”?
【问题讨论】:
标签: validation cakephp cakephp-3.0 cakephp-3.x