Hi! I’ve been working with yii2 for quite a while but I’m new in this forum. I’ve searched through the topics but couldn’t find the solution for my problem so I post this topic. Hopefully it’s not a repost.
I have an issue with custom validations. There is a model called Contact Form like this:
class ContactForm extends Model
{
public $name;
public $email;
public $subject;
public $body;
public $response;
public $response2;
public function rules()
{
return [
[['name', 'email', 'subject', 'body'], 'required'],
['email', 'email'],
['response', function ($attribute, $params) {
$this->addError($attribute, 'Wrong response 1');
}, 'skipOnError' => false],
['response2', 'validresponse2'],
];
}
public function validresponse2($attribute, $params) {
$this->addError($attribute, 'Wrong response 2');
}
}
There are 2 attributes (response and response2) which have custom validation.
Both custom validation are not working. They didn’t pop up an error message at all. When I put echo "asd; die(); inside those functions, They didn’t die too.
Here is how I validate the form in my controller
$model = new ContactForm();
$model->subject = "New Message";
if (isset($_POST['ContactForm'])) {
$model->attributes = $_POST['ContactForm'];
$model->response = "";
if ($model->validate()) {
echo "validated successfully";
die();
}
}
And it is always validated successfully
Is my rule setting wrong? I’ve done it using Yii 1 and it works fine.