Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation Cakephp中每个表有多个业务规则_Validation_Cakephp_Cakephp 3.0_Cakephp 3.x - Fatal编程技术网

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或编写自己的规则对象:


是的,但我的问题是,是否有任何方法可以在多个函数上编写业务规则并单独调用它们,就像验证规则一样。您是否愿意检查我的链接?第三个就是这样!