如果 Laravel 中的值不为空,如何验证输入字段

新手上路,请多包涵

我正在尝试使用 laravel 5.4 创建和更新用户

这是为创建用户添加的验证。有用。

 $this->validate($request, [
    'name' => 'required|max:255',
    'email' => 'required|email|max:255|unique:users',
    'password' => 'required|min:6|confirmed',
]);

更新时不需要密码字段。但如果密码字段不为空,请验证 min:6 并确认规则。尝试使用 sometimes ..但不工作..

 $this->validate($request, [
    'name' => 'required|max:255',
    'email' => 'required|email|max:255|unique:users,email,'.$id,
    'password' => 'sometimes|min:6|confirmed',
]);

原文由 noufalcep 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 768
2 个回答

我们也可以根据 文档 使用验证器类的有时方法来实现这一点

use Illuminate\Support\Facades\Validator;

//... your code ...

$validator = Validator::make($request->all(), [
      'name' => 'required',
      'contact' => 'required',
]);
$validator->sometimes('password', 'min:6|confirmed', function ($input) {
    return (strlen($input->password) > 0);
});
if ($validator->fails()) {
     return redirect()->back()->withErrors($validator)->withInput();
}

当密码字段的 长度大于 0 时,这将验证密码属性规则。否则将忽略该密码属性的规则。

原文由 Harsh Patel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题