Как настроить правила валидации для public переменных

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Gyry
Сообщения: 87
Зарегистрирован: 2017.09.11, 15:23

Как настроить правила валидации для public переменных

Сообщение Gyry »

Добрый день. У меня есть поле и дроп даун лист. Мне нужно повесить на них правило валидации, что бы если поле не заполнено и дроп даун лист не выбран, форма ни чего не отправляла. Но почему то это не работает, он как будто это не видит.

Controller:

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

class PromocodeController extends Controller {

    public function actionIndex() {

        $model = new Promocode();
        $this->render('index', array(
            'model' => $model
        ));
    }

    public function actionSubmit(){

        $promocode = $_POST['Promocode']['checkPromocode'];
        $course_id = (int) $_POST['course_id'];
        ...
        ...
        ...
Model:

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

class Promocode extends ActiveRecord {

    public $checkPromocode;
    public $course_id;

    /**
     * @return string the associated database table name
     */
    public function tableName() {
        return 'promocode';
    }

    /**
     * @return array validation rules for model attributes.
     */
    public function rules() {
        return array(
            array('status, user_id, code, on_off, course_id, checkPromocode', 'required'),
        );
    }
    ...
    ...
    ...
view:

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

<?php echo CHtml::activeTextField($model, 'checkPromocode', array('class'=>'form-input form-input-solid promocode-input'));?>
	<?php echo CHtml::dropDownList('course_id', $model, array(
 		'5'  => 'Поле 5',
		'9'  => 'Поле  9',
		'10' => 'Поле  10',
	), array('class'=>'promocode-select','empty' => 'Выберите поле...'));                         ?>
	
	<?php echo CHtml::submitButton('Активировать промокод', array('class' => 'registration-tabs__block-footer-btn btn promocode-btn'));?>
<?php echo CHtml::endForm();?>
P.s.: во view находится форма( за него отвечает actionIndex() ). Отправляем данные в actionSubmit(), они передаются тут всё хорошо с этим.
Ответить