У меня около двадцати text-box
, checkbox
и select
, а также четыре типа файлов.Я хотел бы сохранить входные данные в базе данных, используя Laravel и AJAX.
На самом деле, я могу сохранить все входные данные кроме типа файла (изображения).
Таблица: META | VALUE
Мой маршрут: $this::resource('/settings','SettingController')->only(['index', 'store']);
Контроллер:
$setting = $request->all();
foreach ($setting as $meta => $value) {
$SF = new Setting();
$SF->meta = $meta;
$SF->value = $value;
echo $SF->save();
}
HTML:
<form>
<input type="text" name="site_title" id="site-title">
<input type="checkbox" name="register" id="register">
....
<input type="file" name="logo" id="logo">
<input type="file" name="favicon" id="favicon">
<input type="file" name="user_profile" id="user_profile">
<input type="file" name="Personal" id="Personal">
AJAX-код:
$('#setting-forms').on('submit', function () {
event.preventDefault();
let _token = $('input[name=_token]').val(); //Get Token
let FormInputs = $("#setting-forms").serialize();
$.ajax({
method: 'POST',
url: '/settings',
data: FormInputs ,
success: function (data) {
//Some Success MSG
},
error: function () {
//Some Error MSG
},
});
Теперь этот код сохраняет все входные данные, кроме типов файлови мой результат выглядит примерно так:
META | VALUE
--------------+--------------
site_title | Laravel
register | On
.... | ...
Но я хочу сохранить и все файлы изображений, поэтому я изменил свой код AJAX на следующий:
let formData = new FormData();
let logo = $("#logo")[0].files[0];
formData.append('logo', logo);
formData.append('FormInputs', FormInputs);
$.ajax({
method: 'POST',
url: '/settings',
data: formData,
contentType: false,
processData: false,
headers: {
'X-CSRF-TOKEN': _token
},
Теперь я могу сохранять логотипыно мой текст сохранен в одной строке.Я получаю это:
META | Value
--------------+-----------------------------------
Logo | MyLOGO
FormInputs | site_title=titlea®ister=on&...
Хотя я бы хотел что-то вроде этого:
META | VALUE
--------------+--------------
Logo | MyLOGO
site_title | title
register | On
Как я могу это исправить?