#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'));
и это будет работать.