Laravel表单请求验证

时间:2017-11-02 13:40:37

标签: laravel validation php-5.5

有没有办法在请求中获取原始数据? 我的意思是,在我的情况下,我想验证更新表单中的用户。我希望电子邮件在数据库中的电子邮件上是唯一的,除非用户写入表单的电子邮件。

3 个答案:

答案 0 :(得分:1)

Laravel已经为此设置了验证规则,您可以向unique validator添加要忽略的用户ID。

'email' => [
    'required',
    Rule::unique('users')->ignore($currentUser->id),
]

答案 1 :(得分:0)

我使用过这样的东西:

'email' => ['sometimes', 'email', 'unique:users,email,'.$user->getKey().','.$user->getKeyName().',deleted_at,NULL', 'string'],

不确定它是否是最佳解决方案但有效。我有点不喜欢它,因为$user基于来自请求的隐藏输入。

答案 2 :(得分:0)

你可以这样说:

'email' => 'unique:users,email,'.$user->id

用户ID将允许您不断更新记录,但保留对电子邮件的唯一约束。对于$ user-> id btw。

,您不需要隐藏的输入字段