2016-01-25 2 views
1

Я использую виджет Kartik Select2 в yii2, я использовал виджет в своем представлении, и я определил массив, который будет отображаться в списке выпадающего списка, но когда я выберу некоторые из элементы и опубликовать форму, она всегда отправляет значение null моему контроллеру. вот мой ActiveForm на мой взгляд:select2 kartik yii2 posting null value issue

<?php 
$form = ActiveForm::begin([ 
    'options' => ['enctype' => 'multipart/form-data'], 
]); 
?> 

<?= $form->field($model,'title')->textinput(); ?> 
<?= $form->field($model,'blog')->textarea(); ?> 
<?= $form->field($model,'imageFile')->fileinput(); ?> 

<?= 
$form->field($model, 'tag')->widget(Select2::classname(), [ 
    'data' => $tags, 
    'options' => ['placeholder' => '...تگ ها را انتخاب کنید'], 
    'pluginOptions' => [ 
    'allowClear' => true, 
    'multiple' => true, 
    ], 
]); 
?> 

<?= Html::SubmitButton('ارسال',['class' => 'btn btn-success green']); ?> 

<?php ActiveForm::end(); ?> 

А вот мой контроллер, который, когда я проверить значение размещен из ВЫБ.2 виджета с var_dump всегда нуль:

public function actionInsertBlog() 
    {  
    $model = new Blog(); 
    $tagModel = new Tag(); 

    if ($model->load(Yii::$app->request->post())) { 
     var_dump($model->tag); 
     die(); 
     if ($model->insertBlog()) { 
     Yii::$app->response->redirect('?r=blog/index',301)->send(); 
     } else { 
     Yii::$app->response->redirect('?r=blog/insert-blog',301)->send(); 
     } 
    } else { 
     $tags = ArrayHelper::map($tagModel->find()->asArray()->all(),'id','tag'); 
     return $this->render('insert',['model' => $model , 'tagModel' => $tagModel , 'tags' => $tags]); 
    } 
    } 
+0

Пожалуйста, покажите нам свои типовые правила. PS: вы должны использовать маршрут с 'Controller :: redirect()'. – soju

ответ

1

Если вы получаете нулевое значение в вашем контроллере, тогда основная причина - это правила модели. Согласно функции загрузки правила, установите атрибут модели, который существует в правилах модели. Может быть, атрибут тега не существует в вашем правиле модели. Вот почему он набирает нулевое значение, помещает «атрибут тега как безопасный в правила»

[['tag'], 'safe'], 
+2

Это действительно очень хорошо. благодаря –

Смежные вопросы