我有一个关于我正在构建的表单的问题,基本上我有2个表,其中一个表我们"用户"存储电子邮件,密码,帐户类型等的位置。比我有另一张名为" personal_data"在哪里存储有关用户的更多信息,如地址,国籍和其他信息。
个人数据仅在用户注册时进行管理,而不是在注册后进入他填写个人信息的页面。在表格" personal_data"我有一个名为" user_id"在哪里建立表之间的关系。
我现在的问题是关于用户何时使用ajax填写表单中的信息。
代码示例:
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
method: 'PUT',//??? PUT OR POST
url: '{{url('user/savedata')}}/{{$user->id}}',
data: {
...
}
}).done(function(response){
console.log(response);
}).fail(function(response) {
var errors = response.responseJSON;
$.each( errors, function(i, n){
//Show error message
});
});
我的问题不是我何时应该使用PUT或POST但是当我应该使用POST或PUT时如何管理我的ajax,因为用户可以第一次插入数据,在这种情况下它必须是POST,但现在想象一下如果记录已经存在,在这种情况下他只需要更新并在ajax中使用PUT。
那我怎么能处理这种情况呢?当用户已经在表中有记录时如何?在这种情况下,最佳做法是什么?
答案 0 :(得分:0)
处理这种情况在帖子检查之前数据已经存在然后显示err msg已经存在其他添加,测量差异b / w post in put,PUT采取为url,但POST只采取端点。
答案 1 :(得分:0)
发送您正在进行的请求,现在使用updateOrCreate
,如果没有针对经过身份验证的用户,则会创建一条记录,如果有,则会更新。
$newUser = \App\UserInfo::updateOrCreate([
'user_id' => Auth::user()->id
],[
'about' => $request->get('about'),
'sec_email' => $request->get('sec_email'),
'gender' => $request->get("gender"),
]);