在,当我们使用行为时Yii
,如何实现unique
验证的最佳方式是?soft delete
目前我在模型中使用自定义方法,也许还有另一个简单的解决方案存在?下面的代码仍然不完整,更新时仍然应用验证。
public function checkexists($attribute,$param) {
if(!$this->hasErrors()) // we only want to authenticate when no input errors
{
$username = $this->username;
if($username)
{
$Command = Yii::app()->db->createCommand('SELECT * FROM users WHERE username = :username AND status = true');
$Command->bindParam(":username", $username);
$user = $Command->queryAll();
if (!empty($user))
{
$this->id_user=isset($user[0]['id_user'])?$user[0]['id_user']:'';
$this->addError('username', 'Username exist');
}
}
}
}