Larave/Ajax PUT 500 内部服务器错误可能原因

Larave/Ajax PUT 500 internal server error possible reasons

每当我尝试使用 ajax 代码更新表单时,我的控制台都会显示此错误:

PUT http://127.0.0.1:8000/clinical/bbr-category-configuration-update/1 500 (Internal Server Error)

路线:

Route::put('/bbr-category-configuration-update/{category_id}', [BBRCategoryConfigurationController::class,'update']);

Ajax:

$(document).on('click', '.update_category', function (e){
    e.preventDefault();
    var cat_id = $('#edit_cat_id').val();
    var update_data = {
        'category_name' : $('#edit_category_name').val(),
        'category_description' : $('#edit_category_description').val(),
    }
    //token taken from laravel documentation
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $.ajax({
        type: "PUT",
        url: "/clinical/bbr-category-configuration-update/"+cat_id,
        data: update_data,
        dataType: "json",
        success: function (response){
            // console.log(response);
            if(response.status == 400) {
                $('#category_formCheckUpdate').html("");
                $('#category_formCheckUpdate').addClass('alert alert-danger');
                $.each(response.errors, function (key, err_values) {   
                        $('#category_formCheckUpdate').append('<li>'+err_values+'</li>');
                });
            } else if(response.status == 404) {
                $('#category_formCheckUpdate').html("");
                $('#category_notif').addClass('alert alert-success');
                $('#category_notif').text(response.message);
            } else {
                $('#category_formCheckUpdate').html("");
                $('#category_notif').html("");
                $('#category_notif').addClass('alert alert-success');
                $('#category_notif').text(response.message);
                $('#editCategoryModal').modal('hide');
                fetchcategory();
            }
        }
    });
});

控制器:

public function update(Request $request, $category_id) {
    $validator = Validator::make($request->all(), [
        'category_name'=>'required|max:191',
        'category_description'=>'required|max:191',
    ]);
    if($validator->fails()) {
        return response()->json([
            'status'=>400,
            'errors'=>$validator->messages(),
        ]);
    } else {                
        $category_update = HmsBbrCategory::find($category_id);
        if ($category_update) {
            $category->category_name = $request->input('category_name');
            $category->category_description = $request->input('category_description');
            $category->update();
            return response()->json([
                'status'=>200,
                'message'=>'Category Edited!',
            ]);
        } else {
            return response()->json([
                'status'=>404,
                'message'=>'Category Not Found',
            ]);
        }
    }
}

注意事项:

如您所见,我的 category_id 正在 url: "/clinical/bbr-category-configuration-update/"+cat_id, 中正确读取。此外,我继续执行 console.log 以在我的控制台中显示正在检索整个 table。我的主要问题是这个 500 内部服务器错误。不确定是不是 PUT.

我也试过把PUT改成POST或者GET就是为了看看有没有变化或者其他错误,但是还是一样500 internal server问题。 PS,我的表格有csrf.

你的问题肯定是$category,你用的是$category_update,不是$category