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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

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

Сообщение Sergalas »

собствено вот ссылки на само расширение https://github.com/kartik-v/yii2-grid вот документация по сохранению с использованием GridView
http://webtips.krajee.com/setup-editabl ... e-records/
но есть необходимость вносить изменения в две модели поэтому преобразую код вот так в контролере

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

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}
Последний раз редактировалось Sergalas 2017.04.19, 08:21, всего редактировалось 1 раз.
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex »

1. Включить отображение ошибок, и ловить их в консоли.
2. В лог пишутся все ошибки, не важно, какой запрос, аякс или нет
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

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

Сообщение sosnovskiy »

1. Дебажить нужно xdebug и к ajax это не имеет отношения.
2. Возьмите нормальную IDE и увидите в чем ошибка
3. Просить людей на форуме выступить в качестве анализатора - идея не очень
Последний раз редактировалось sosnovskiy 2017.04.18, 22:47, всего редактировалось 1 раз.
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

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

Сообщение Sergalas »

urichalex писал(а): 2017.04.18, 22:41 1. Включить отображение ошибок, и ловить их в консоли.
2. В лог пишутся все ошибки, не важно, какой запрос, аякс или нет
error.log молчит как рыба об лед. А где в дебаге смотреть не знаю. а вот это вы о чем
1. Включить отображение ошибок, и ловить их в консоли.
консоль и выдает эту ошибку Internal Server Error и как включить отображение ошибок?
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

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

Сообщение Sergalas »

sosnovskiy писал(а): 2017.04.18, 22:45 1. Дебажить нужно xdebug и к ajax не имеют отношения.
2. Возьмите нормальную IDE и увидите в чем ошибка
3. Просить людей на форуме выступить в качестве анализатора - идея не очень
IDE - phpstorm x-debug стоит правда к ide не подключен. Я так понимаю ошибка должна быть в консоле. в консоле как я написал вываливаться Internal Server Error
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

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

Сообщение sosnovskiy »

Ваша ошибка, это ошибка еще на этапе когда интерпретатор читает код. Смотрите в сторону синтаксиса и прочего
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

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

Сообщение sosnovskiy »

Так же смотрите php error лог
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

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

Сообщение Sergalas »

sosnovskiy писал(а): 2017.04.18, 22:54 Так же смотрите php error лог
а где он находится не там где я в подключении к хостам указал ?
Ответить