目前正在将Laravel从v5.2更新到5.5,并且无法弄清楚我是如何获得"独特的"规则正在进行更新。
这是我在Laravel 5.2上运行良好的规则
public function rules()
{
$retVal = [
'username' => 'required|alpha_dash|min:4|max:30',
'password' => 'min:6|confirmed',
'password_confirmation' => 'min:6',
'email' => 'required|email|unique:users,email,' . $user->id,
'roles_list' => 'required',
];
if (stristr($this->get('username'), '@'))
{
$retVal['username'] = 'required|email';
}
return $retVal;
}
但现在在Laravel 5.5中,我总是得到一个"电子邮件独特的" -error更新。当我手动输入用户ID时,它可以工作。就像在Laravel文档中描述的一样,它应该有效:
https://laravel.com/docs/5.5/validation#form-request-validation
我不知道如何在我的表单请求中访问$ user对象。 非常感谢您提前协助!
答案 0 :(得分:0)
您的$user
变量似乎为空。
如果您尝试在请求课程中检索当前经过身份验证的用户,可以尝试以下操作:
$user = $this->user();
接下来,您必须稍微更改email
规则:
'email' => 'required|email|unique:users,email,' . ($user ? $user->id : 0),