2
我正在使用Model :: validation()調用進行模型驗證。Phalcon Mvc Model :: validation()和非模型驗證程序
看起來型號::的validate()只有當爾康\確認\驗證用來接受來自爾康\的mvc \型號\驗證命名空間的驗證和崩潰:
class User extends Phalcon\Mvc\Model
{
protected $email = 'invalid @email.*';
public function validation()
{
// Validator from Model namespace
$this->validate(new Phalcon\Mvc\Model\Validator\Uniqueness(array(
"field" => "email",
"message" => "The email is already registered"
)));
// Validator from Validation namespace - causes "BadMethodCallException" - "Wrong number of parameters".
$this->validate(new Phalcon\Validation\Validator\Between(array(
"field" => "counter",
'minimum' => 10,
'maximum' => 20,
"message" => "Invalid value"
)));
$validationHasFailed = $this->validationHasFailed();
return $validationHasFailed != true;
}
}
這導致BadMethodCallException - 錯誤的參數數量錯誤。
我的下一個念頭,就是改變代碼如下:
class User extends Phalcon\Mvc\Model
{
protected $email = 'invalid @email.*';
public function validation()
{
// Omitting Uniqueness validator.
$validation = new Phalcon\Validation();
$validation->add('email', new Phalcon\Validation\Validator\Email);
$this->validate($validation);
$validationHasFailed = $this->validationHasFailed();
return $validationHasFailed != true;
}
}
然而,該代碼無法檢測到的電子郵件字段(沒有發生校驗錯誤)的無效值。
與此同時,下面的電子郵件驗證按預期工作:
$validation = new Validation();
$validation->add('email', new EmailValidator());
$messages = $validation->validate([
'email' => 'bad email @...',
], 'email');
問:
我是否可以使用非模型驗證的型號::驗證()調用?
謝謝!