Validation Cakephp中每个表有多个业务规则
在表上,我们可以有许多不同的验证,我们可以根据需要调用它们:Validation Cakephp中每个表有多个业务规则,validation,cakephp,cakephp-3.0,cakephp-3.x,Validation,Cakephp,Cakephp 3.0,Cakephp 3.x,在表上,我们可以有许多不同的验证,我们可以根据需要调用它们: public function validationDefault(Validator $validator) { $validator ->requirePresence('title', 'create') ->notEmpty('title'); $validator ->allowEmpty('link') ->add('
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()
action),因为我只需要在一些不改变用户数据的地方进行检查。
至于业务规则,本书中提供的唯一示例就是将它们放在buildRules()
方法中
那么,有没有一种方法可以拥有多个业务规则,比如如何验证数据,并将其称为“手动”使用buildRules()回调并使用callables或编写自己的规则对象: