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
但是当我们在必填字段上使用->withErrors()
和->withInput()
时,为什么Validator
错误 会起作用?而且我之前使用过->with('variable',$variable)
发送数据并且它有效,为什么不是这个??
关于errors
的解释见我的回答。此外,不能直接使用with()
发送的变量。您是否指的是在将数据传递给视图时使用with()
?
同意观看。变量或数组。例如,它适用于填充下拉列表。
嗯with()
视图与传递数据和重定向不同。以上是关于Laravel 4 登录凭据不匹配不会发回错误数据的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:如何更改默认登录错误消息:'这些凭据与我们的记录不匹配'