Подскажите есть
<?php
$form = ActiveForm::begin(['id' => $model->formName()]
);
?>
<?php
echo GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
[
'attribute' => 'id',
'label' => Yii::t('frontend', 'Id'),
],
[
'attribute' => 'username',
'label' => Yii::t('frontend', 'Name'),
],
['class' => 'yii\grid\CheckboxColumn',
'name' => 'broker_id',
'checkboxOptions' => function ($model, $key, $index, $column) {
return ['value' => $model->id];
}
],
],
]);
?>
<div class="form-group">
<?= Html::submitButton(Yii::t('common', 'Save'), ['class' => 'btn btn-info', 'name' => 'packages-button']) ?>
</div>
<?php
ActiveForm::end();
?>
Нужно принять много чек боксов и обработать. Насколько понимаю есть 2 способа.
1) Это валидация в rules
public function rules() {
return [
[['broker_id'],'each', 'rule' => ['integer']],
];
}
2) Еще способ это Model::validateMultiple([broker_id])
public function actionIndex() {
$model = new BrokersForm();
$brokers = User::find()->where(['user_type' => 'broker']);
$dataProvider = new ActiveDataProvider([
'query' => $brokers,
'sort' => [
'defaultOrder' => ['id' => SORT_DESC],
], 'pagination' => [
'pageSize' => 10,
],
]);
var_dump($model->load(Yii::$app->request->post()));
// die();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->save()) {
Yii::$app->session->setFlash('success', 'Брокер выбран.');
return $this->refresh();
} else {
Yii::$app->session->setFlash('error', 'Ошибка брокер не выбран.');
return $this->refresh();
}
} else {
return $this->render('index', ['model' => $model, 'dataProvider' => $dataProvider]);
}
Но не один не работает не пойму почему.