【发布时间】:2021-12-13 01:32:04
【问题描述】:
无法验证 laravel 8 中的输入数组。我从前端获得了可从后端成功访问的序列化表单数据。
public function GetForm(Request $request)
{
$request = $request->all();
$input = array();
parse_str($request['data'], $input);
return $input;
}
output:
{
"inputID":"26",
"inputName":"Julie Hughes est",
"inputPhone":"+94111222333",
"inputEmail":"testmail@gmail.com"
}
我想要的是在用户更改时更新数据之前验证更新函数中的表单。
public function update(Request $request)
{
if (request()->ajax()) {
$request = $this->GetForm($request);
$object = User::find($request['inputID']);
$object->name = $request['inputName'];
$object->phone = $request['inputPhone'];
$object->email = $request['inputEmail'];
$object->save();
return response()->json([
"message" => "User Information has been updated"
], 200);
}
}
我对验证功能的尝试如下
public function GetForm(Request $request)
{
$request = $request->all();
$input = array();
parse_str($request['data'], $input);
return $this->validate(
$input, // Expected type 'Illuminate\Http\Request'. Found'array'.intelephense(1006)
[
'inputID' => ['required'],
'inputName' => ['required', 'string', 'max:255'],
'inputPhone' => ['required', 'string', 'email'],
'inputEmail' => ['required', 'min:9', 'number'],
],
);
}
寻找解决此问题的建议。
$('#updateBtn').click(function() {
console.log('update triggered')
axios.get('/users/update/', {
params: {
data: $("#updateForm").serialize()
}
})
.then(function(response) {
let i = response.data
console.log(i);
userTable.ajax.reload();
$('#editModel').modal('hide')
window.toastr.success(i.message);
}).catch(function(error) {
console.log(error)
})
})
【问题讨论】:
-
inputId,inputName,这些都是数组吗?还是只是一个普通的形式?
-
您是否尝试使用 ajax 验证?
-
@AsfandyarKhan 是的,尝试使用 ajax
-
你也可以分享你的ajax代码吗?
-
@AsfandyarKhan [ 'inputID' , 'inputName' , 'inputPhone' , 'inputEmail' ] 这是一个数组
标签: php laravel laravel-8 laravel-7 laravel-6