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);

}