我正在测试这个新框架(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
的情况下在本地服务器上对其进行了测试。这就是为什么我的错误没有显示在视野中的原因。