gpt4 book ai didi

ajax - Laravel Controller /Ajax 未保存在我的数据库中

转载 作者:行者123 更新时间:2023-12-04 13:52:36 28 4
gpt4 key购买 nike

好像是我的 save();在我的类别中没有按预期运行。我将首先显示必要的代码:
我的表名是 hms_bbr_category这也是本地连接到我的 .env 的:

DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=jhs
DB_USERNAME=postgres
DB_PASSWORD=pa55wor0
我的型号:HmsBbrCategory
类 HmsBbrCategory 扩展模型
{
protected $table = 'hms_bbr_category';
protected $fillable = [
"category_name", "category_description"
];
}
我的 Controller :BBRCategoryConfigurationController
class BBRCategoryConfigurationController extends Controller
{
public function index(){
return view('frontend.bbr-settings.bbr-category-configuration');
}

public function store(Request $request)
{
$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 = new HmsBbrCategory;
$category->category_name = $request->input('category_name');
$category->category_description = $request->input('category_description');
$category->save();
return response()->json([
'status'=>200,
'message'=>'Category Added!',

]);
}

}
ajax 和 modal 字段
<div class="form-group">
<input type="text" class="form-control form-group w-100 category_name" placeholder="Category Name">
</div>
<div class="form-group">
<textarea class="form-control w-100 category_description" placeholder="Category Description" cols="50" rows="10"></textarea>
</div>

<script>
$(document).ready(function (){
$(document).on('click', '.add_category', function(e){
e.preventDefault();
var category_data = {
'category_name': $('.category_name').val(),
'category_description': $('.category_description').val(),
}

//token taken from laravel documentation
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
console.log(category_data);
$.ajax({
type: "POST",
url: "/clinical/bbr-category-configuration",
data: "category_data",
dataType: "json",
success: function (response){
// console.log(response);
if(response.status == 400)
{
$('#saveform_errList').html("");
$('#saveform_errList').addClass('alert alert-danger');
$.each(response.errors, function (key, err_values) {
$('#saveform_errList').append('<li>'+err_values+'</li>');
});
}
else
{
$('#saveform_errList').html("");
$('#success_message').addClass('alert alert-success');
$('#success_message').text(response.message);
$.('#createCategory').modal('hide');
$.('#createCategory').find('input').val("");
console.log(category_data);
}
}
});
});
});
</script>
我在 web.php 上的路由
Route::get('/bbr-category-configuration', [BBRCategoryConfigurationController::class,'index']);
Route::post('/bbr-category-configuration', [BBRCategoryConfigurationController::class,'store']);
注意事项:
我的预感是我的商店功能在 $category = new HmsBbrCategory; 上没有正确连接但是我已经检查过我的表名和所采用的字段是否相同,如 $category->category_name = $request->input('category_name'); 所示。
我还通过简单地添加 console.log(response) 在 ajax 中测试了这些值。如屏幕截图所示,我无法通过验证器到达 save() .我不知道如何,但由于我的文本字段已填充,因此不应出现错误。
1
如果需要,我可以详细说明,我在问我可以更改什么来修复我的验证/保存。谢谢你的帮助。

最佳答案

如错误所示,验证失败(我猜是空值)并返回您编程的代码(400)。
我猜这是因为您在属性 data: "category_data", 处使用字符串而不是变量
更新代码以发送变量

 $.ajax({
type: "POST",
url: "/clinical/bbr-category-configuration",
data: category_data, //change here
dataType: "json",
success: function (response){
//...

关于ajax - Laravel Controller /Ajax 未保存在我的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68016291/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com