在将 \Phalcon\Mvc\Model\Validator\Uniqueness 验证器与作为命名空间的模型一起使用时,我得到以下 Phalcon\Db\Exception。看起来验证器类在构建支持查询时没有使用模型中的 getSource 方法。
您的 SQL 语法有错误;在执行 SELECT COUNT(*) AS rowcount FROM app\ 时,检查与您的 MySQL 服务器版本相对应的手册以在 app\dao\users 附近使用正确的语法 WHERE username = 'nhidalgo' AND id <> ''' at line 1 dao\users WHERE 用户名 = 'nhidalgo' AND id <> ''
我的代码如下:
<?php
namespace App\Dao;
use Phalcon\Mvc\Model\Validator\Inclusionin;
use Phalcon\Mvc\Model\Validator\Uniqueness;
class Users extends \Phalcon\Mvc\Model
{
public function initialize()
{
$this->setSource('users');
}
public function validation()
{
$this->validate(new Uniqueness(
array(
"field" => "username",
"message" => "Username must be unique"
)
));
$this->validate(new Uniqueness(
array(
"field" => "email",
"message" => "Email must be unique"
)
));
return !$this->validationHasFailed();
}
}