Как правильно удалить из GridView данные выведенные посте через связную таблицу
Добавлено: 2019.04.16, 18:50
Привет, в добавлении поста я выбираю опции через связную таблицу и при сохранении поста, эти опции вывожу там же в редактировании поста в GridView, получаю опции через связь has-many via и прогоняю их через ArrayData.
Столкнулся с такой проблемой, во первых, если выбрать опции несколько раз, они добавляются в базу, но в gridview не попадают похоже из за того что дубли игнорирубтся, и вторая проблема чтобы удалить опции для поста мне надо удалить связь в связной таблице, где model_id и option_id , то есть сделать экшен куда передать $model->id и $option_id если со вторым параметром это легко так как он есть в в gride, а как передать в грид в анонимную функцию $model->id данного поста?
Столкнулся с такой проблемой, во первых, если выбрать опции несколько раз, они добавляются в базу, но в gridview не попадают похоже из за того что дубли игнорирубтся, и вторая проблема чтобы удалить опции для поста мне надо удалить связь в связной таблице, где model_id и option_id , то есть сделать экшен куда передать $model->id и $option_id если со вторым параметром это легко так как он есть в в gride, а как передать в грид в анонимную функцию $model->id данного поста?
Код: Выделить всё
[
'class' => 'yii\grid\ActionColumn',
'template' => '{delete}',
'headerOptions' => ['width' => '270'],
'buttons' => [
'delete' => function ($url, $data, $key) {
return Html::a('Удалить', Url::to(['/зщые/delete-options', 'option_id '=> $data->id, 'model_id' => КАК СЮДА ПЕРЕДАТЬ]), [
'style' => 'color:red',
'data' => [
'confirm' => 'Вы уверены что хотите удалить опцию ' . $data->text . '?',
'method' => 'post',
],
]);
},