Получение «слишком мало аргументов, переданных в функцию» при отправке формы Laravel с помощью Ajax - PullRequest
0 голосов
/ 22 мая 2018

Я создаю форму внутри модуса Bootstrap, который отправляется в Laravel при нажатии кнопки «Сохранить».

Форма сама состоит из текстового поля, текстовой области, файла ввода иa a checkbox.

Контроллер, который должен получать все данные, выглядит следующим образом:

/**
 * @param $request
 * @return \Illuminate\Http\JsonResponse
 */
public function postCategory($request) {
    return response()->json($request);
}

Моя цель на данный момент - убедиться, что все идет к действию хорошего контроллераи возвращается к JQuery в виде строки JSON.Когда это будет сделано, я опишу, как содержимое формы должно быть сохранено.

Вот как выглядит мой Ajax-запрос:

$("#new_category").submit(function(e) {

    e.preventDefault();

    $.ajax({
        type: "POST",
        url: window.location.origin + '/admin/categories',
        data: {
            data: $(this).serialize()
        },
        dataType: "json",
        success: function(data){
            console.log(data);
        }
    });

});

Обновление

Вот как выглядит форма:

<form id="new_category">
    <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Nouvelle catégorie</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
        </button>
    </div>
    <div class="modal-body">
    <div class="form-group">
        <label for="category_title">Titre</label>
        <input type="text" class="form-control" id="category_title" placeholder="Titre" name="category_title">
    </div>
    <div class="form-group">
        <label for="category_description">Description</label>
        <textarea class="form-control" name="category_description" id="category_description" rows="3" placeholder="Description..."></textarea>
    </div>
    <div class="form-group">
        <label for="category_illustration">Illustration</label>
        <input type="file" class="form-control-file" name="category_illustration" id="exampleFormControlFile1">
    </div>
    <div class="form-check">
        <input type="checkbox" name="category_enabled" class="form-check-input" id="category_enabled" checked="checked">
        <label class="form-check-label" for="category_enabled">Actif</label>
    </div>
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
    <button type="submit" class="btn btn-primary">Enregistrer</button>
</div>
</form> 

А вот мой маршрут, который обрабатывает отправку:

Route::post('/admin/categories', 'HomeController@postCategory');

Я также нашел этот вопрос , который помогменя много, но я все еще получаю эти проблемы.

Что мне делать?

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

1 Ответ

0 голосов
/ 22 мая 2018

Я бы попробовал отредактировать код примерно так:

/**
 * @param $request
 * @return \Illuminate\Http\JsonResponse
 */
public function postCategory(Request $request) {
    return response()->json($request->all());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...