Столбец не может быть нулевым в функции обновления ajax laravel

#ajax #laravel

#ajax #laravel

Вопрос:

Привет, ребята, я отправляю свои обновленные значения из ajax в мою функцию обновления.я получаю сообщение об ошибке «Столбец не может быть нулевым»

Вот мой ввод, который я отправляю в формате json:

         <input type="text" id="jsonData" name="jsonData">
 

И вот моя форма ajax:

 function saveEditQtypeFile(edit_qtype_id)
    {
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

       chk_EnumValuesValidation = chkEnumValuesValidation(isSoltion, stepCount);
       if(!chk_EnumValuesValidation)
       {
           return false;
       }
        else
        {
            // Function to push "MainArray" in current Solution
            pushVarMainArrayInThisSolution(isSoltion, var_main_arr.var_arr_values);

            arr                = ar;
            var edit_qtype_id = $('#edit_qtype_id').val();
            var qtype_name = $('#qtype_name').val();
            var subject_list   = $('#qtype_subject_id').val();
            var ddl_topic_type = $('#qtype_topic_id').val();
            var qtype_option = $('#qtype_option').val();
            var jasondata = $('#jsonData').val();
            var sort_order = $('#sort_order').val();

            var sendInfo       = {
                'edit_qtype_id':edit_qtype_id,
                'arr':arr,
                'saveEditQtypeFile':1,
                'qtype_name':qtype_name,
                'qtype_subject_id':subject_list,
                'qtype_topic_id':ddl_topic_type,
                'qtype_option':qtype_option,
                'qtype_json':jasondata,
                'sort_order':sort_order
            };

            console.log('json',jasondata);
            //return false;

              //var loadQtypeInfo = JSON.stringify(sendInfo);
              $.ajax({
                url: "/eqtype-editor/update",
                type: "POST",
                data :sendInfo,
                contentType: "application/x-www-form-urlencoded",

                success: function(response)
                {
                    alert('Your file is updated!');
                    window.location.href ="/eqtype-editor";

                },
                error: function (request, status, error)
                {
                    alert('problem with updating record!!!');
                },
                complete: function()
                {}
            });
        }
    }
 

и вот мой контроллер:

  public function update(Request $request, Qtype_editor $qtype_editor)
{

    $qtype_editor = Qtype_editor::findOrFail($request->edit_qtype_id);
    $qtype_editor->qtype_name = $request->input('qtype_name');
    $qtype_editor->qtype_subject_id = $request->input('qtype_subject_id');
    $qtype_editor->qtype_topic_id = $request->input('qtype_topic_id');
    $qtype_editor->qtype_option = $request->input('qtype_option');
    $qtype_editor->qtype_json = json_decode($request->input('jsonData'));
    $qtype_editor->sort_order = $request->input('sort_order');

    $qtype_editor->save();

    return redirect()->route('eqtype-editor.index');
}
 

Из ajax, когда я консолью, я получаю свои данные json .. я получаю сообщение об ошибке, поскольку qtype_json не может быть нулевым.

Кто-нибудь может мне помочь, где я его упускаю.

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

Комментарии:

1. Проверьте qtype_json , включен ли он в массив $fillable вашей модели

2. да, он был включен в защищенный $casts = [ ‘qtype_json’ => ‘array’, ];

3. Есть ли у вас свойство $ fillable или $ guarded в вашей модели?

4. нет, у меня его нет

5. Попробуйте определить protected $guarded = [] в своем классе модели

Ответ №1:

Вы используете неправильный ключ для своих данных.

Измените строку в вашем контроллере:

 $qtype_editor->qtype_json = json_decode($request->input('jsonData'));
 

Для

 $qtype_editor->qtype_json = json_decode($request->input('qtype_json'));
 

и это будет работать.