#json #yii2 #kartik-v
#json #yii2 #kartik-v
Вопрос:
Я пытаюсь обновить данные в Kartik-DetailView, используя Kartik-Editable в моем проекте Yii2.
Вот мой код в
view.php:
<?php
echo DetailView::widget([
'model' => $model,
'mode' => DetailView::MODE_VIEW,
'attributes' => [
[
'class' => kartikgridEditableColumn::class,
'attribute' => 'busFleetStatus',
'format' => 'raw',
'value' => Editable::widget([
'model' => $model,
'attribute' => 'busFleetStatus',
'asPopover' => true,
'beforeInput' => function($form, $widget) {
echo $form->field($widget->model, 'busFleetStatus')->widget(kartikselect2Select2::classname(), [
'data' => ArrayHelper::map(SystemStatus::find()->where(['statusCode' => 'busFleetStatus'])->all(), 'systemStatusId', 'statusDetail'),
])->label(false);
},
'displayValueConfig' => [
1 => 'Available',
2 => 'Maintenance',
],
'format' => Editable::FORMAT_LINK,
'inputType' => Editable::INPUT_SELECT2,
]),
],
.... //another code
],
])
?>
и установите действие в контроллере следующим образом
BusFleetController.php:
public function actionView($id) {
if (Yii::$app->request->post('hasEditable')) {
$_id = Yii::$app->request->post('editableKey');
$model = BusFleet::findOne($_id);
$out = Json::encode(['output'=>'', 'message'=>'']);
$post = [];
$posted = current($_POST['BusFleet']);
$post['BusFleet'] = $posted;
if ($model->load($post)) {
if ($model->save()) {
if (isset($posted['busFleetStatus'])) {
$output = $model->busFleetStatus;
}
$out = yiihelpersJson::encode(['output' => $output, 'message' => '']);
}
}
return $out;
}
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
Но я получил ошибку json, я проверил через отладчик в браузере Mozilla, и на вкладке параметров я ничего не получил, я не получил данные JSON, например hasEditable
editableIndex
, и т. Д.
Я выполнил несколько тестов из другого выпуска или учебника, но у меня возникла та же проблема. Я просто следую тому, как это делает другое тело.
Изображение ошибки
Обновить
В моем представлении используется метод GET в качестве запроса.
Комментарии:
1. когда вы получаете эту ошибку при открытии редактируемого всплывающего окна или изменении параметра выбора?
2. Я получил сообщение об ошибке при нажатии кнопки сохранить / отправить