Laravel 4 登录凭据不匹配不会发回错误数据

Posted

技术标签:

【中文标题】Laravel 4 登录凭据不匹配不会发回错误数据【英文标题】:Laravel 4 Login Credentials mismatch does not send back error data 【发布时间】:2015-03-30 13:08:56 【问题描述】:

一切都很好,登录、验证和用户名/密码组合不匹配,除了不匹配,它不会发回我发送的数据。 这是我的代码,我尝试了不同的登录技术,但同样的问题。

这是我的刀片页面错误部分:

    <div id="formErrorDiv">
        @if ($errors->has())
            <h2>* Please check your errors.</h2>
        @endif
        @if (isset($mismatch))
            <h2>*  $mismatch </h2>
        @endif
    </div>

虽然用于字段验证的 $errors-has() 运行良好,但 $mismatch 变量始终为空。

这是我的控制器登录部分:

        if($auth)
            return Redirect::intended('/');
         else 
            //dd('auth else');
            $mismatch = 'Login Credentials Error.';
            return Redirect::route('account-sign-in')
                    ->with('mismatch', $mismatch);
        

虽然当我使用 dd('auth else') 时它确实可以工作,因此它进入了 else 部分,但总是不发送任何重定向。

【问题讨论】:

【参考方案1】:

您需要使用Session::get() 来检索您使用with() 传递的值:

@if(Session::has('mismatch'))
    <h2>*  Session::get('mismatch') </h2>
@endif

errors 是这里的例外。因为将它传递给下一个视图很常见,所以 Laravel 内置了它,因此会话中的 errors 变量会自动在您的视图中可用...

【讨论】:

谢谢,它有效。虽然我之前尝试过,但我所做的是使用Session::put$mismatch 变量放入会话,然后使用Session::get 将其放入刀片中那也没有用。现在一切都很好,谢谢...@lukasgeiter 但是当我们在必填字段上使用-&gt;withErrors()-&gt;withInput() 时,为什么Validator 错误 会起作用?而且我之前使用过-&gt;with('variable',$variable) 发送数据并且它有效,为什么不是这个?? 关于errors 的解释见我的回答。此外,不能直接使用with() 发送的变量。您是否指的是在将数据传递给视图时使用with() 同意观看。变量或数组。例如,它适用于填充下拉列表。 with() 视图与传递数据和重定向不同。

以上是关于Laravel 4 登录凭据不匹配不会发回错误数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:如何更改默认登录错误消息:'这些凭据与我们的记录不匹配'

Laravel Problem凭据与我们的记录不符

Laravel 中的注册和登录表单不起作用

Laravel 7 Vue 2 Sanctum 登录错误 419; CSRF 令牌不匹配

使用 JWT 获取令牌而不尝试用户凭据 Laravel?

laravel 5.4 auth 外观不起作用