带有错误功能的拉拉维尔不起作用


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

你可以像这样从刀锋中引用...

<?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:user,username。使用数据库表名和列名,而不是模型值。

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

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