gpt4 book ai didi

validation - CakePHP - 在哪里放置可重用的自定义验证规则?

转载 作者:行者123 更新时间:2023-12-04 19:51:53 25 4
gpt4 key购买 nike

我想添加一个自定义验证规则,必要时可以在整个应用程序中重复使用。放在哪里最好?

我知道我可以将它们放在 AppModel 中,但它很困惑,并且使用偶尔用于验证的方法污染/膨胀 AppModel,我发现我需要在它们前面加上 validateUsernamevalidateCustom 等,以使它们与 AppModel 中的其他方法清楚地组织起来。我觉得在 OOP 结构中有更好的方法来做到这一点。

有没有办法将自定义规则指定为 Lib 类的静态方法,例如?

例如

app/Lib/Validate.php

class Validate {

public function username($value) {
$value = array_shift($value);
return preg_match('/^[A-Z0-9_-]+$/i', $value);
}
}

然后仅在需要时在模型中使用规则:

app/Model/MyModel.php

App::uses('Validate', 'Lib');

class MyModel extends AppModel {

public $validate = array(
'username' => array(
'rule' => 'Validate::username',
'message' => 'Username contains invalid characters'
)
);
}

最佳答案

您可以使用行为来做到这一点。 http://book.cakephp.org/2.0/en/models/behaviors.html您可以使用设置回调来附加验证规则或创建您自己的自定义函数。然后,您可以根据需要将行为附加到模型。

关于validation - CakePHP - 在哪里放置可重用的自定义验证规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com