I have added two virtual properties to my model …
$isSystemUser and $username.
These properties are both public.
I have also added them into my normal rule validations as "safe".
I have this code to validate that a username is unique when a checkbox is checked. This code is absolutely fine and should work.
public function uniqueWhenIsSystemUserChecked($attribute, $params) {
if($this->isSystemUser && $this->username != null) {
$uniqueValidator = new CUniqueValidator;
$uniqueValidator->attributeName = "UserName";
$uniqueValidator->className = "Person";
$uniqueValidator->validate($this, "username");
}
}
The problem is when I run this code. It has not put the two virtual properties in the attributes of the model, do you have any ideas why? So when I run the validate() method it thinks the two virtual properties do not exist.
How do I get my virtual properties to show up in the attributes and work like normal attributes?
Please note: I have done $model->attributes = $_POST["Model"]; in the controller so that is all setup and should work.