[英]Phalcon PHP validation Uniqueness but allow empty values
I have the following validation: 我有以下验证:
use Phalcon\Validation;
use Phalcon\Validation\Validator\Uniqueness;
class Users extends BaseModel {
public function validation() {
$validator = new Validation();
$validator->add('some_data', new Uniqueness([
'message' => 'this field must be unique or epmty'
]));
// some other rules (...)
return $this->validate($validator);
}
}
The question is how to allow pass empty data. 问题是如何允许传递空数据。 I'd like to save in database NULL if data is empty or unique value if it's passed.
如果数据为空,则我想保存在数据库NULL中;如果传递数据,我想保存为唯一值。
you can also do this 你也可以这样做
public function validation()
{
$validator = new Validation();
if (!empty($this->getSomeData())) {
$validator->add('some_data', new Uniqueness([
'message' => 'this field must be unique or epmty'
]));
}
// some other rules (...)
return $this->validate($validator);
}
Ok, I found solution with CallbackValidator 好的,我找到了CallbackValidator的解决方案
$validator->add('some_data', new CallbackValidator([
"callback" => function($data) {
if (!empty($data->getSomeData())) {
return new Uniqueness([
"message" => "this field must be unique or epmty"
]);
}
}
]));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.