Laravel withError 函数不工作

Laravel withError function not working

我正在测试这个新框架 (Laravel),到目前为止,我一直在关注他们放在文档中的那些示例。一切顺利,直到我遇到这个问题。

我正在呼叫 Redirect::to('\signup')->withErrors($validator->messages()); 但它没有显示任何内容 但如果我只是像 print_r($validator->messages()); 那样打印它,它会向我显示错误。请帮帮我,告诉我哪里错了?

控制器

public function registerUser(){
    $validator = Validator::make(Input::all(),array(
            'username' => 'required|email|unique:user',
            'password' => 'required|min:8',
            'fullname' => 'required'
        )
    );
    if($validator->fails()){

        return Redirect::to('signup')->withInput()->withErrors($validator);
    }else{
        return Redirect::route('user');
    }

}

路线 Route::get('/signup',array('as'=>'signup', 'uses'=>'HomeController@signUp'));

查看

<?php print_r($errors) ; ?>

以下是Laravel网站的相关信息:

Route::post('register', function()
{
    $rules = array(...);

    $validator = Validator::make(Input::all(), $rules);

    if ($validator->fails())
    {
        return Redirect::to('register')->withErrors($validator);
    }
});

您可以像这样从 Blade 中参考...

<?php echo $errors->first('email'); ?>

注意到 $errors 是一个对象了吗?您调用 print_r($errors) 可能不会产生非常有用的输出。

试试这个...

<?php
    var_dump($errors->first('username'));
    var_dump($errors->first('password'));
    var_dump($errors->first('email'));
?>

另外: 您的 unique:用户验证应该是 unique:user,username。使用数据库 table 名称和列名称,而不是模型值。

注意:如果您在浏览器中对此进行测试,您可能需要研究使用 Clockwork,它允许您从浏览器中查看会话信息而无需print_r/var_dump 个电话。

问题是我在 session 文件(在 config 文件夹中)中将 secure 选项更改为 true,并在没有 https 的情况下在本地服务器上对其进行测试。这就是为什么我的错误没有显示在视图中的原因。