在Yii中使用无参数的验证规则

布雷特

我只是想知道是否有一种方法可以从您的rules方法中运行验证函数,而您无需向该函数传递任何参数?

因此,通常您会传入属性的属性名称,但是说您知道要使用的属性,例如$this->foo and $this->bar

因此,普通的自定义内联验证器将像这样完成:

['country', 'validateCountry']

public function validateCountry($attribute, $params)
{
    if (!in_array($this->$attribute, ['USA', 'Web'])) {
        $this->addError($attribute, 'The country must be either "USA" or "Web".');
    }
}

就像我目前正在这样做:

['username', 'regAvailable', 'params' => ['email' => 'email']],

public function regAvailable($attribute, $params) {

    $username = $this->{$attribute};
    $email = $this->{$params['email']};



}

当然可以。但是当我可以做的时候似乎有点矫seems过正:

public function regAvailable($attribute, $params) {

    $username = $this->username;
    $email = $this->email;



}

当然,我仍然可以用这种方式来做,但是然后我觉得通过将那些未使用的参数放在那儿,代码将不是很“干净”。我更喜欢这样:

public function regAvailable() {

    $username = $this->username;
    $email = $this->email;



}   

反正有做这样的事情吗?如果是这样,怎么办?

Ali MasudianPour

当然可以。您可以避免将任何参数传递给自定义验证方法。例如:

public function regAvailable() {
    if(!$this->hasErrors()){
        if(strlen($this->email) < 10 && $this->email!='[email protected]' && $this->username!='admin'){
              $this->addError('email','Invalid email!');
              $this->addError('username','username must not be admin');
         }
    }
}

但是,请注意,如果您需要对多个字段执行一些验证,则使用这些参数将很有用。假设我们有9个字段需要验证上述功能之类的主题。因此,最好使用自$attribute变量,因为它指向正在验证中的字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Yii中使用无参数的验证规则

来自分类Dev

在验证规则中使用多个required_if

来自分类Dev

Yii中的条件验证规则

来自分类Dev

在Yii 2的UrlManager规则集中使用RegEx

来自分类Dev

Yii2:如何仅在规则中使用整数

来自分类Dev

Yii2:如何仅在规则中使用整数

来自分类Dev

在Yii 2的UrlManager规则集中使用RegEx

来自分类Dev

在Firebase数据库中使用多个验证规则

来自分类Dev

在 Laravel 的 FormRequest 中使用复杂的条件验证规则

来自分类Dev

在方法参数中使用 Symfony 验证器

来自分类Dev

Yii2-表单验证规则:如何使用自定义验证功能或替代方法?

来自分类Dev

如何在CodeIgniter中使用路由规则获取参数

来自分类Dev

如何在CodeIgniter中使用路由规则获取参数

来自分类Dev

在NestJS中使用类验证器对可选参数进行验证?

来自分类Dev

在无服务器框架中使用路径参数

来自分类Dev

在自定义规则文件中使用默认的laravel验证规则

来自分类Dev

yii2更新验证规则

来自分类Dev

Yii2:数组的验证规则?

来自分类Dev

Yii2 ActiveForm验证规则消息

来自分类Dev

模型场景 yii 上的验证规则冲突

来自分类Dev

选择字段的 Yii2 验证规则

来自分类Dev

在Laravel 5中使用表单请求验证时如何添加自定义验证规则

来自分类Dev

我可以在自定义验证类中使用laravel验证规则吗?

来自分类Dev

如果表单属性值为空,请使用Yii规则验证来更改属性名称

来自分类Dev

如何在Yii中使用CDbCriteria对多个参数进行分组?

来自分类Dev

如何在Yii中使用CDbCriteria对多个参数进行分组?

来自分类Dev

在Excel规则中使用AND

来自分类Dev

在规则中使用 CountableValueRange

来自分类Dev

如何使用别名和$ _GET参数配置yii2 urlManager规则

Related 相关文章

  1. 1

    在Yii中使用无参数的验证规则

  2. 2

    在验证规则中使用多个required_if

  3. 3

    Yii中的条件验证规则

  4. 4

    在Yii 2的UrlManager规则集中使用RegEx

  5. 5

    Yii2:如何仅在规则中使用整数

  6. 6

    Yii2:如何仅在规则中使用整数

  7. 7

    在Yii 2的UrlManager规则集中使用RegEx

  8. 8

    在Firebase数据库中使用多个验证规则

  9. 9

    在 Laravel 的 FormRequest 中使用复杂的条件验证规则

  10. 10

    在方法参数中使用 Symfony 验证器

  11. 11

    Yii2-表单验证规则:如何使用自定义验证功能或替代方法?

  12. 12

    如何在CodeIgniter中使用路由规则获取参数

  13. 13

    如何在CodeIgniter中使用路由规则获取参数

  14. 14

    在NestJS中使用类验证器对可选参数进行验证?

  15. 15

    在无服务器框架中使用路径参数

  16. 16

    在自定义规则文件中使用默认的laravel验证规则

  17. 17

    yii2更新验证规则

  18. 18

    Yii2:数组的验证规则?

  19. 19

    Yii2 ActiveForm验证规则消息

  20. 20

    模型场景 yii 上的验证规则冲突

  21. 21

    选择字段的 Yii2 验证规则

  22. 22

    在Laravel 5中使用表单请求验证时如何添加自定义验证规则

  23. 23

    我可以在自定义验证类中使用laravel验证规则吗?

  24. 24

    如果表单属性值为空,请使用Yii规则验证来更改属性名称

  25. 25

    如何在Yii中使用CDbCriteria对多个参数进行分组?

  26. 26

    如何在Yii中使用CDbCriteria对多个参数进行分组?

  27. 27

    在Excel规则中使用AND

  28. 28

    在规则中使用 CountableValueRange

  29. 29

    如何使用别名和$ _GET参数配置yii2 urlManager规则

热门标签

归档