Почему не получается с сохранением kartik GridView?

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

но есть необходимость вносить изменения в две модели поэтому преобразую код вот так в контролере
if (Yii::$app->request->post('hasEditable')) {
            $id = Yii::$app->request->post('editableKey');
            $editableAttribute= Yii::$app->request->post('editableAttribute');
            $model = Transliter::findOne($id);
            $out = Json::encode(['output'=>'', 'message'=>'']);
            $posted = current($_POST['Transliter']);
            $post = ['Transliter' => $posted];
            if ($model->load($post)) {
                $model->$editableAttribute=$posted;
               if($model->save()){}else{
                    return var_dump($model->getErrors());
                }
                $output = '';
                $out = Json::encode(['output'=>$output, 'message'=>'']);
            }
            echo $out;
            return;


получаю ошибку Internal Server Error причем если за комментировать сохранения и вернуть модель вот так
if (Yii::$app->request->post('hasEditable')) {
            $id = Yii::$app->request->post('editableKey');
            $editableAttribute= Yii::$app->request->post('editableAttribute');
            $model = Transliter::findOne($id);
            $out = Json::encode(['output'=>'', 'message'=>'']);
            $posted = current($_POST['Transliter']);
            $post = ['Transliter' => $posted];
            if ($model->load($post)) {
                $model->$editableAttribute=$posted;
            }
            echo $out;
            return var_dump($model->category);

то получаю что изменение есть но не сохранились. Дебаг дает ошибку
yii\base\ErrorException: Undefined offset: 0 in /var/www/film.lc/vendor/yiisoft/yii2/db/Command.php:330 
Stack trace: 
#0 /var/www/film.lc/vendor/yiisoft/yii2/db/ActiveRecord.php(225): yii\db\Command->update() 
#1 /var/www/film.lc/vendor/yiisoft/yii2/db/BaseActiveRecord.php(765): yii\db\ActiveRecord::updateAll() 
#2 /var/www/film.lc/vendor/yiisoft/yii2/db/ActiveRecord.php(570): yii\db\BaseActiveRecord->updateInternal() 
#3 /var/www/film.lc/vendor/yiisoft/yii2/db/BaseActiveRecord.php(636): yii\db\ActiveRecord->update() 
#4 /var/www/film.lc/backend/modules/transliter/controllers/TransliterController.php(50): yii\db\BaseActiveRecord->save() 
#5 /var/www/film.lc/vendor/yiisoft/yii2/base/InlineAction.php(57): backend\modules\transliter\controllers\TransliterController->actionIndex() 
#6 /var/www/film.lc/vendor/yiisoft/yii2/base/InlineAction.php(57): ::call_user_func_array:{/var/www/film.lc/vendor/yiisoft/yii2/base/InlineAction.php:57}()
 #7 /var/www/film.lc/vendor/yiisoft/yii2/base/Controller.php(156): yii\base\InlineAction->runWithParams() 
#8 /var/www/film.lc/vendor/yiisoft/yii2/base/Module.php(523): yii\base\Controller->runAction() 
#9 /var/www/film.lc/vendor/yiisoft/yii2/web/Application.php(102): yii\base\Module->runAction() 
#10 /var/www/film.lc/vendor/yiisoft/yii2/base/Application.php(380): yii\web\Application->handleRequest() 
#11 /var/www/film.lc/backend/web/index.php(18): yii\base\Application->run() 
#12 {main}
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
проблема явно тут:
$posted = current($_POST['Transliter']);
$post = ['Transliter' => $posted];
if ($model->load($post)) {

Выведете через var_damp. Где-то вложенность массива не верная. Не пойму вообще зачем там current
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
02 июн. 2024, в 09:22
5000 руб./за проект
02 июн. 2024, в 01:13
2000 руб./за проект
01 июн. 2024, в 23:49
50000 руб./за проект