У меня есть некоторые проблемы с моим вызовом ajax, у меня есть группа коллекций, и когда я нажимаю на ссылку показать, она должна показывать мне задачи коллекции. Проблема в том, когда я пытаюсь создать новые задачи для текущей коллекции. Я сделал 50% проблемы, потому что она создает записи в базе данных, но происходит нечто странное.
Форма уже отправлена, даже если я не нажму кнопку создания
Послевызов ajax, он создает записи в базе данных, но не добавляет вновь созданный элемент, он показывает мне это:
Ответ на вызов Ajax
Вот мой ajaxскрипт:
$(document).ready(function() {
// store task
$('#create-task').click(function (event) {
event.preventDefault();
$.ajax({
type: 'post',
dataType: 'json',
data: $('#create-task-form').serialize(),
success: function (data) {
$('#create-task-form').trigger('reset');
$('#createTaskModal').modal('hide');
$('.collections').append('<li>' + data.name + '</li>');
}
});
});
});
Я не установил URL, потому что когда я делаю это, он показывает мне что-то вроде этого, и я не знаю почему.
Дублирующая коллекция / коллекция/ id
Установить URL
Маршруты:
// Collection routes
Route::prefix('collections')->middleware('auth')->group(function() {
Route::get('/', 'CollectionController@index')->name('collections.index');
Route::post('/', 'CollectionController@store')->name('collections.store');
Route::get('/{collection}', 'CollectionController@show')->name('collections.show');
Route::get('/{collection?}/edit', 'CollectionController@edit')->name('collections.edit');
Route::patch('/{collection?}', 'CollectionController@update')->name('collections.update');
Route::delete('/{collection?}', 'CollectionController@destroy')->name('collections.destroy');
Route::post('/{collection?}', 'CollectionController@storeTask')->name('tasks.store');
});
Контроллер
public function storeTask(Request $request)
{
$attributes = $request->validate([
'name' => 'required|min:3',
'description' => 'nullable|min:3',
'status' => 'required',
'due' => 'nullable|date'
]);
$attributes['collection_id'] = $request->collection;
$task = Task::create($attributes);
return Response::json($task);
}
PS: Iможет по-прежнему создавать записи, даже если проверка с серверной части не удалась!