Florens
@Florens
Изучаю возможности yii2

Как принять результат dropDownList?

Добрый день!
Создаю выпадающий список.
<?= $f->field($form, 'block')->dropDownList([
                        7 => '7 дней',
                        14 => '14 дней',
                        30 => '30 дней',
                        0 => 'Полная',
                   ])->label('Срок'); ?>

Затем смотрю на результат
public function addBlock($user) {
    	var_dump($this->block);die;
}

В ответе вижу NULL

Параллельно есть текстовой ввод и от него ответ приходит.

Модели формы выглядит так:
<?php

namespace app\models;

use Yii;
use yii\base\Model;

class BlockForm extends Model {

	public $block;
	public $reason;
	

	public function rules() {
        return [ 
        	['reason', 'required', 'message' => 'Укажите причину блокировки'],
        ];
    }

    public function addBlock($user) {
    	//$time = time() + 60*60*24*$this->block;
    	var_dump($this->block);
    	var_dump($this->reason);die;
    	/*$block = new Block();
    	$block->iduser = $user->id;
    	$block->who = Yii::$app->user->identity->id;
    	$block->reason = $this->reason;
    	$block->time = time();
    	if($this->block > 0){ $block->timeblock = $time; }
    	else { $block->timeblock = 0; }
    	return $block->save();*/
    }
}


В контроллере:
public function actionBlock() {
        $form = new BlockForm;
        $id = Yii::$app->request->get('id');
        $user = User::findOne($id);

        if($form->load(Yii::$app->request->post()) && $form->validate() && $form->addBlock($user)) {
            //var_dump($form); die;
            //return $this->redirect('/admin/user/blockall');
        }
        return $this->render('block', [
                'form' => $form,
                'id' => $id,
                'user' => $user,
            ]);
    }
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
padlyuck
@padlyuck
public function rules() {
        return [ 
                ['block','safe'],//указать правило нужно
        	['reason', 'required', 'message' => 'Укажите причину блокировки'],
        ];
    }

свойства не указанные в правилах валидации не могут быть загружены через $model->load();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы