我在我的方法中有以下的代码,我通过AJAX将它发送到控制器方法:
$newUser = \App\UserInfo::updateOrCreate([
'user_id' => Auth::user()->id,
'about' => $request->get('about'),
'sec_email' => $request->get('sec_email'),
'gender' => $request->get("gender"),
'country' => $request->get('country'),
'dob' => $request->get('dob'),
'address' => $request->get('address'),
'mobile' => $request->get('cell_no')
]);
dd($request->all())
返回给我:
array:8 [
"_token" => "fHeEPfTvgMD3FpIBmmc6DmKXFaiuWKZEiOhg6twQ"
"about" => "Some about me."
"sec_email" => "example@gmail.com"
"country" => "Priority highest"
"gender" => "male"
"dob" => "12/12/1990"
"address" => "Some address"
"cell_no" => "234234234"
]
非常完美。
Jquery 代码 :
$('#submit-editProfile-form').on('click', function() {
var profileEditForm = $("#edit-user-profile");
var formData = $('#edit-user-profile').serialize();
profileEditForm.on('submit', function(e){
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url:'/freelance/edit-userProfile-info',
type:'POST',
data:formData,
error: function (data) {
console.log('Error');
}
});
}).submit();
});
现在的问题是我的表格里已经有一条记录,但以上的代码会创建另一条记录,并且每次按钮点击(请求)都会导致记录翻倍。
'user_id' => Auth::user()->id,
是必要的。Builder::updatedOrCreate() 将第一个参数发送到 firstOrNew(),这意味着如果需要创建新条目,您的用户ID将自动应用于该条目。 - kmuenkel$key = array_slice($county, 0, 1); Fylke::updateOrCreate($key, $county);
问题解决了。谢谢。 - Erlend