【发布时间】:2020-07-07 22:38:57
【问题描述】:
您好,这是我的用户更新控制器。我想知道如何将这些 laravel 验证规则仅应用于更新的字段。目前,当我只更新名字时,手机号码也会得到验证。我的姓名字段经过 alpha 验证,电话号码通过正则表达式验证。
public function update(Request $request, User $setting)
{
request()->validate([
'name' => ['required', 'alpha','min:2', 'max:255'],
'last_name' => ['required', 'alpha','min:2', 'max:255'],
'mobile'=>['required', 'string','regex:/\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|
2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|
4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$/'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,'.$setting->id.''],
]);
$setting->update($request->all());
return Redirect::back()->with('success','User updated successfully');
}
我能够处理电子邮件(唯一)字段,但不能处理其他字段。
【问题讨论】:
-
只更新名字是什么意思?你只发送名字来请求?
-
基本上,如果您成功创建模型,则表示验证通过对吧?为什么它也不会传递更新?
-
不假设有四个字段,名字,姓氏电子邮件和手机号码,然后假设用户更新了提到的字段之一,那么我只希望验证该字段而不是未更改的字段。
-
但是,即使它们被验证了,它们也会通过验证,因为它们在创建时通过了验证..
-
是的,但问题是我手动将一些值插入到数据库中(不考虑验证规则),因此它们在创建时没有经过验证
标签: php laravel validation exception laravel-6