我正在try 用laravel 5.4创建和更新用户

这是为创建用户添加的验证.它起作用了.

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

更新时,密码字段不是必需的.但如果密码字段不为空,则验证min:6和confirmed规则.试过sometimes次..但不起作用..

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

推荐答案

try 将可空作为规则使用

'password' => 'nullable|min:6|confirmed',

https://laravel.com/docs/5.8/validation#a-note-on-optional-fields

Laravel相关问答推荐

灯丝:设定模式标题

当未通过验证的字段是值数组时,Laravel$validator->;validator()方法不会引发异常

Livewire 基于下拉 Select 自动填充输入框

Laravel Eloquent查询与集合优化

Laravel REST API:如何将数据库列名与参数的另一个名称映射?

如何返回Blade Laravel 中的按钮?

为什么使用 created_at 表在迁移错误中创建表?

如何判断用户Electron邮件是否已存在

在 apache docker 容器中运行虚拟主机

无法安装 Laravel 包 - 干预图像

Twilio 查找 API 不起作用?

Laravel 5 - 在控制器文件中为多个路由定义中间件

将 Laravel Socialite 与 API 一起使用?

Laravel - 自定义时间戳列名称

如何在 Laravel 中实现自己的 Faker 提供程序

Laravel:方法[显示]不存在

在 laravel 中删除排队的作业(job)

Laravel 单元测试依赖注入

Laravel Nova 显示用户友好的资源名称

Laravel 5如何获取路由动作名称?