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