Laravel表单请求验证

Laravel表单请求验证,laravel,validation,php-5.5,Laravel,Validation,Php 5.5,有没有办法在请求中获取原始数据? 我的意思是,在我的例子中,我想验证表单中用户的更新。我希望该电子邮件在数据库中的电子邮件上是唯一的,但在用户写给表单的电子邮件上除外。Laravel已经对此有一个验证规则,您可以将要忽略的用户id添加到您的电子邮件中 我用了这样的方法: 'email' => ['sometimes', 'email', 'unique:users,email,'.$user->getKey().','.$user->getKeyName().',deleted

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

Laravel已经对此有一个验证规则,您可以将要忽略的用户id添加到您的电子邮件中


我用了这样的方法:

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

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

您可以这样做:

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

用户id将允许您不断更新记录,但保留对电子邮件的唯一约束。您不需要$user->id btw的隐藏输入字段。

使用内置验证器完全可以做到这一点:我这样做是因为我正在更新的表单是这样绑定的:{!!表单::model$customerAddress,['route'=>'user.update',class'=>'表单水平表单用户数据']!!并且我无法访问请求中的$This->用户。
'email' => 'unique:users,email,'.$user->id