Как правильно удалить из GridView данные выведенные посте через связную таблицу

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Как правильно удалить из GridView данные выведенные посте через связную таблицу

Сообщение alexa777 »

Привет, в добавлении поста я выбираю опции через связную таблицу и при сохранении поста, эти опции вывожу там же в редактировании поста в GridView, получаю опции через связь has-many via и прогоняю их через ArrayData.
Столкнулся с такой проблемой, во первых, если выбрать опции несколько раз, они добавляются в базу, но в 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',
                                            ],
                                ]);
                            },
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Как правильно удалить из GridView данные выведенныев посте через связную таблицу

Сообщение someweb »

Код: Выделить всё

'delete' => function ($url, $data, $key) use ($model){
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Ответить