Не валидируется модель

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
nihaha
Сообщения: 95
Зарегистрирован: 2017.02.12, 13:30

Не валидируется модель

Сообщение nihaha »

Не могу найти причину, по которой не проходит валидацию моя модель.

Модель

Код: Выделить всё

class QuickContactForm extends Model
{
    public $name;
    public $phone;
    public $productName;
    public $productModel;
    public $productUrl;

    public function rules()
    {
        return [
            [['name', 'phone'], 'required'],
            [['name', 'phone', 'productName', 'productModel', 'productUrl'], 'string', 'max' => 255],

        ];
    }

    public function attributeLabels()
    {
        return [
            'name' => 'Имя',
            'phone' => 'Телефон',
        ];
    }
}
Экшн:

Код: Выделить всё

public function actionQuickContact()
    {
        $model = new QuickContactForm();

        if ($model->validate()) {
            Yii::$app->mailer->compose()
                ->setTo('email@gmail.com')
                ->setFrom(['anotheremail@gmail.com' => 'MyName'])
                ->setSubject('Тема')
                ->setTextBody('Текст')
                ->send();

            return true;
        }

        return false;
    }
Данные полей формы получаю через JS и отправляю аяксом на экшн, в $_POST все данные есть и все они, вроде бы, строки.

Код: Выделить всё

Name 	Value
productName 	'Shadow'
productModel 	'007'
productUrl 	'shadow'
name 	        'Имя'
phone 	        '(000) 000-0000'
Если убрать if($model->validate()), то письмо отправляется
Аватара пользователя
proctoleha
Сообщения: 298
Зарегистрирован: 2016.07.10, 19:00

Re: Не валидируется модель

Сообщение proctoleha »

Валидировать нечего потому что.

Создали новую модель, а данные для валидации где?

Код: Выделить всё

if ($model->load(yii::$app->request->post())) {
	...
}
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Аватара пользователя
nihaha
Сообщения: 95
Зарегистрирован: 2017.02.12, 13:30

Re: Не валидируется модель

Сообщение nihaha »

Переписал, проверил - не работает

Код: Выделить всё

if($model->load(yii::$app->request->post())) {
    if ($model->validate()) {
        Yii::$app->mailer->compose()
            ->setTo('email@gmail.com')
            ->setFrom(['anotheremail@gmail.com' => 'MyName'])
            ->setSubject('Тема')
            ->setTextBody('Текст')
            ->send();

        return true;
    }
}
Аватара пользователя
PartyPoison
Сообщения: 69
Зарегистрирован: 2017.04.27, 11:04

Re: Не валидируется модель

Сообщение PartyPoison »

$model->load(yii::$app->request->post(), "");

попробуйте.
Аватара пользователя
nihaha
Сообщения: 95
Зарегистрирован: 2017.02.12, 13:30

Re: Не валидируется модель

Сообщение nihaha »

О, ништяк, спасибо! Все работает
Ответить