Laravel 5 RegisterController创建方法重定向,在Laravel 5.4中出现错误消息问题

Laravel 5 RegisterController创建方法重定向,在Laravel 5.4中出现错误消息问题,laravel-5,laravel-5.4,Laravel 5,Laravel 5.4,将用户重定向到注册页面,错误消息“用户已存在” 问题是我不能使用验证作为电子邮件类型,因为我正在创建代码中手动添加组织名称@organization.com,并且我阻止用户输入@organization-name.com。当前验证只检查电子邮件值是否已填写。因此,我需要在create方法中使用一些策略来确定电子邮件是否存在,并在此处采取适当的操作重定向回错误页面或重定向到登录页面,说明用户存在 这是我在寄存器控制器-创建方法中的代码 } 我用了这个: $existing = User::sele

将用户重定向到注册页面,错误消息“用户已存在”

问题是我不能使用验证作为电子邮件类型,因为我正在创建代码中手动添加组织名称@organization.com,并且我阻止用户输入@organization-name.com。当前验证只检查电子邮件值是否已填写。因此,我需要在create方法中使用一些策略来确定电子邮件是否存在,并在此处采取适当的操作重定向回错误页面或重定向到登录页面,说明用户存在

这是我在寄存器控制器-创建方法中的代码 }

我用了这个:

$existing = User::select('email')->where('email',$email)->pluck('email');
        if($existing[0] == $email){

            return Redirect()->back()->withErrors('User already exists');
        }else{
            //continue
        }

但是我得到了会话保护错误。

您得到的例外是使用相同的电子邮件添加新用户(根据您的迁移情况,这是唯一的)。在创建
用户之前
可以先检查它是否已经存在

$user = User::where('email', '=', 'user_email')->first();
if($user == null)
{
  //Add new user
}else { 
 return redirect()->route('someroute');
}

您得到的例外情况是使用相同的电子邮件添加新用户(根据您的迁移情况,这是唯一的)。在创建
用户之前
可以先检查它是否已经存在

$user = User::where('email', '=', 'user_email')->first();
if($user == null)
{
  //Add new user
}else { 
 return redirect()->route('someroute');
}

似乎您的验证器通过了,否则不会出现sql异常似乎您的验证器通过了,否则不会出现sql异常thrown@NaumanZafar Inside if condition of validator->Failes我添加了重定向回withErrors($validator),就像其他控制器一样。我明白了:在RegistersUsers.php第31行的null上调用成员函数validate()。@MurlidharFichadia,你能发布完整的代码吗。更具体地说,您在验证器方法中的
数据
dd($data)
中得到了什么,并分享您得到的信息。这似乎是个问题。您的数据可能为空。@NaumanZafar不,我得到了数据。阵列:14[▼ “\u token”=>“nOiPYe8aLqT8QRM1MH3b01Le8imsAoK8IntKo1Ip”“firstname”=>“efdd”“lastname”=>“hkdf”“email”=>“jo185”“password”=>“123123”“password”=>“123123”“campus”=>“1”“年”=>“1”“bio”=>null“native\u lang”=>“4”“other”=>null“flag\u selected”=>null“提交”=>“提交”]@NaumanZafar我所寻找的是,若用户已经存在X电子邮件,那个么只需重定向到登录页面,并且msg用户已经存在。我希望避免在注册表中进行验证Controller@NaumanZafar Inside if condition of validator->Failes我添加了重定向回withErrors($validator),就像其他控制器一样。我明白了:在RegistersUsers.php第31行的null上调用成员函数validate()。@MurlidharFichadia,你能发布完整的代码吗。更具体地说,您在验证器方法中的
数据
dd($data)
中得到了什么,并分享您得到的信息。这似乎是个问题。您的数据可能为空。@NaumanZafar不,我得到了数据。阵列:14[▼ “\u token”=>“nOiPYe8aLqT8QRM1MH3b01Le8imsAoK8IntKo1Ip”“firstname”=>“efdd”“lastname”=>“hkdf”“email”=>“jo185”“password”=>“123123”“password”=>“123123”“campus”=>“1”“年”=>“1”“bio”=>null“native\u lang”=>“4”“other”=>null“flag\u selected”=>null“提交”=>“提交”]@NaumanZafar我所寻找的是,若用户已经存在X电子邮件,那个么只需重定向到登录页面,并且msg用户已经存在。我想避免在寄存器控制器中进行验证
$user = User::where('email', '=', 'user_email')->first();
if($user == null)
{
  //Add new user
}else { 
 return redirect()->route('someroute');
}