Как использовать редактируемый столбец Yii2 kartik gridview с несколькими модельными отношениями для сохранения данных через редактируемые - PullRequest
0 голосов
/ 13 апреля 2020

Вопрос:

У меня есть 2 модели, модель pm_project и модель pm_project_comments, обе связаны с первичным и внешним ключом project_id, pm_project имеет поля project_id, project_title, project_status et c Таблица pm_project_comments хранит комментарии :_док_проекта, идентификатор_проекта, комментарии_рпс, followup_ao и др. c

Я создал сетку в представлении pm_project. Я использую kartik EditableColumn, я хочу отредактировать поле таблицы pm_project_comments comments_rps из таблицы pm_project grid и сохранить в таблицу pm_project_comments.

Что я сделал до сих пор. Пожалуйста, проверьте код, что я сделал.

пожалуйста, обратите внимание: это часть кода, которую я показываю здесь, и я думаю, что этого достаточно, чтобы понять. если вы хотите увидеть больше, я отредактирую вопрос.

Просмотр: проект / индекс. php

<?php   

     $gridColumns = [
                        [
                            'class' => 'kartik\grid\EditableColumn',
                            'attribute' => 'comments_rps',
                            'value' => function($model){ return $model->projectComments; },
                            'pageSummary' => true,
                            'readonly' => false,
                            'editableOptions' => function($model, $key, $index) {
                        return [
                            'header' => 'Header Name',
                            'formOptions' => [
                                'action' => [
                                    '/project/updrps'
                                ],
                            ],
                            'submitButton' => [
                                'class' => 'btn btn-sm btn-primary',
                                'icon' => '<i class="glyphicon glyphicon-floppy-disk"></i>',
                            ],
                        ];
                    },
                        ],
        ]; 


          echo \kartik\grid\GridView::widget([
                    'dataProvider' => $dataProvider,
                    'filterModel' => $searchModel,
                    'pjax' => true,
                    'columns' => $gridColumns


?>

ProjectController. php

public function actionUpdrps() {

if (Yii::$app->request->post()) {
    $projectId = Yii::$app->request->post('editableKey');
    $project = Project::findOne($projectId);


    $out = \yii\helpers\Json::encode(['output' => '', 'message' => '']);
    $post = [];
    $posted = current($_POST['Project']);
    $post['Project'] = $posted;
    if ($project->load($post) ) {
        print_r($project->getErrors());
        $project->save();
        return $this->redirect(['index']);
    }
    echo $out;
}
print_r($project->getErrors());

}

Проблема

Когда я нажимаю на comment_rps и вводу в него значения, оно не сохраняется в таблице pm_project_comments.

введите новое значение с помощью редактируемого

отклик вкладки сети

Заранее спасибо.

...