【问题标题】:suddenly flash notification in a function stopped working功能中的闪烁通知突然停止工作
【发布时间】:2018-09-19 16:52:36
【问题描述】:

我有一个登录页面,它会显示错误通知。

以下是显示 Flash 通知的错误:

1.当用户没有确认他/她的电子邮件ID时。 2.当用户输入错误的登录凭据时。

前几天还好好的,现在报错了

未定义的索引密码

我的逻辑:

    public function postSignIn(Request $request)
    {

        $this->validate($request,[

                'loginEmail'=> 'required' ,
                'loginPassword' => 'required'

                ]);


        $remember = $request->input('remember_me');

        $user=User::where('email', $request['loginEmail'])->first();


        if(Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword'],'confirmed'=>1],$remember))
        {




            //return redirect()->route('myplace');
            return redirect()->route('myplace',['username' => $user->username]) ;
        }
        if(Auth::attempt(['confirmed'=>0]))
        {
 \Session::flash('message','Please verify your email!');
        \Session::flash('alert-class', 'alert-warning'); 
        return redirect()->back();
        }
        if(!Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword']]))
        {
        \Session::flash('message','Login credentials are wrong!');
        \Session::flash('alert-class', 'alert-warning'); 
            return redirect()->back();
            }


    }

【问题讨论】:

  • 检查完整的错误信息,它说明是什么类和行导致了错误。
  • @AlexeyMezenin 确切错误:/home/aksoutco/public_html/laravel/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php 第 116 行中的ErrorException:未定义索引:密码

标签: php laravel laravel-5.2


【解决方案1】:

问题出在这里:

if(Auth::attempt(['confirmed'=>0]))

您不能在不输入密码的情况下使用attempt()。因此,请尝试使用您稍后在代码中使用的相同代码:

Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword']])

【讨论】:

  • 我试过:if(Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword'],'confirmed'=> 0])) 但发生的事情是我登录了这不应该发生,因为电子邮件没有得到确认
  • 既然你有用户的email,你可以通过email$user = User::where('email', $request['loginEmail'])->first();从DB获取用户,然后检查它是否被确认。我没有看到数据库结构,但代码看起来像这样:if ($user->confirmed == 1)
  • 你能提供我确切的结构吗?我在这里尝试过:pastebin.com/cKSVgYUK
  • 您使用了大量的 if 和冗余数据,代码不可读。你真的需要重写代码。
  • 第一个如果是错误的凭据..第二个是检查是否确认为 1,如果为真则登录.....最后一个是显示电子邮件确认错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
相关资源
最近更新 更多