Php 使用布局模板的flash消息重定向回
在我的控制器中,我有一个登录用户的功能 如果登录成功,我只需使用Php 使用布局模板的flash消息重定向回,php,redirect,laravel,laravel-4,flash-message,Php,Redirect,Laravel,Laravel 4,Flash Message,在我的控制器中,我有一个登录用户的功能 如果登录成功,我只需使用return Redirect::back() 当凭据不正确并且我想用flash消息重定向时,我的问题就开始了 我知道我可以使用方法将链接到重定向,但这会将数据发送到特定视图,而不是登录HTML所在的布局 我可以加载这样的视图: $this->layout ->with('flash',$message) ->content = View::make('index'); 但我需要重定向回引用页
return Redirect::back()
当凭据不正确并且我想用flash消息重定向时,我的问题就开始了
我知道我可以使用方法将链接到重定向,但这会将数据发送到特定视图,而不是登录HTML所在的布局
我可以加载这样的视图:
$this->layout
->with('flash',$message)
->content = View::make('index');
但我需要重定向回引用页面
将数据传递到布局时是否可以重定向?Laravel Validator类可以很好地处理这一问题。。。。
我通常的做法是在blade中的布局/视图中添加条件
{{ $errors->has('email') ? 'Invalid Email Address' : 'Condition is false. Can be left blank' }}
如果有任何内容返回错误,将显示一条消息。。
然后在你的验证过程中你有
$rules = array(check credentials and login here...);
$validation = Validator::make(Input::all(), $rules);
if ($validation->fails())
{
return Redirect::to('login')->with_errors($validation);
}
这样,当您进入登录页面时,无论提交的内容如何,它都会检查错误,如果发现错误,它会显示您的消息
编辑的部分
用于处理Auth类。。
在你看来
@if (Session::has('login_errors'))
<span class="error">Username or password incorrect.</span>
@endif
谢谢虽然可能,用户的日志记录通常是通过Auth类完成的。是的,在这种情况下,您可以使用Session::has('login_errors')。hi@KyleK,您能否解释更多关于with('login_errors',true),为什么需要登录错误,以及第二个参数在做什么?谢谢@Shiro,“登录错误”只是一个任意名称。。。。它真的可以是你想要的任何东西。“true”参数只是将“login\u errors”的值设置为true…因为当登录失败时,我们希望该值为true…因此在视图中,视图中的if语句检查“login\u errors”是否为true,并显示一条消息。基本上,->with()方法只是一个键/值数据对……所以第一个参数是键,第二个是值。(在本例中只是一个布尔值)……大多数情况下,您通常使用->with()将数据传递给视图。哈哈。。谢谢你的解释。现在我明白了大局。首先,我认为登录错误是某种预设的功能关键字或什么。我还不能得到很多关于这个的文档。非常感谢你,Kylek!
$userdata = array(
'username' => Input::get('username'),
'password' => Input::get('password')
);
if ( Auth::attempt($userdata) )
{
// we are now logged in, go to home
return Redirect::to('home');
}
else
{
// auth failure! lets go back to the login
return Redirect::to('login')
->with('login_errors', true);
}