Checkbox status Yii2

В CRUD Yii2 можно сделать поле с чекбоксом при нажатии на который будет меняться статус статьи или товара. Очень удобно когда часто приходится отключать/включать записи в базе данных

index.php в GridView добавляем столбец

  [
  'class' => 'yii\grid\CheckboxColumn',
  'header' => 'Вкл.',
  'checkboxOptions' => function ($model, $key, $index, $column) {
  $options['onclick'] = 'btnStatusClick('.$model->id.');';
  $options['checked'] = $model->status ? true : false;
  return $options;
  }
  ],

Ajax событие для чекбокса

 //изменение статуса
$script = <<< JS

function btnStatusClick(id){
    console.log(id)
    const csrfToken = $('meta[name="csrf-token"]').attr("content");
    $.ajax({
        type: 'GET',
        url: '/users/default/status',
        data: {
             // _csrf : csrfToken,
            id: id
            },
        success: function(result){
            console.log(result);
        }
    });
}//btnStatusClick


JS;
$this->registerJs($script,\yii\web\View::POS_END);

В контроллер

  public function actionStatus($id)
  {
  $tag = Tags::findOne($id);
  $tag->status == 1 ? $tag->status = 0 : $tag->status = 1;
  $tag->save();
  }
Источник: Перейти
Комментарии (0):
Чтобы оставить свой комментарий, необходимо пройти аутентификацию