让我告诉你我的情况。我已经制作了一个简单的库/模块,我可以在我的控制器中弹出。这样我可以使用一个视图文件,只需更改一些$ form字段(如文本输入,选择等)就可以得到不同的结果。示例如下:
$form = new FormHelper('Webshop bewerken','shop/update',$errors);
$form->addHiddenInput('id',$id);
$form->addTextInput('name','Naam',$item->name);
$form->addTextInput('export','Uitvoer',$item->output_location);
$form->addTextInput('method','Methode',$item->method);
$form->addSidebar();
$form->generateForm();
//show the page
$this->layout->content = View::make('item')->with('form',$form);
问题不存在于表单中。这工作正常,直到我需要验证。但是,$ errors是未定义的,因此我无法呈现错误。
我注意到此变量仅在视图中可用,而不在控制器中。
如果您只有几个blade.php文件,这很好,但在我的情况下却没有(许多屏幕都包含通用信息)。
如何在控制器中访问$ errors变量(从laravel验证器输出)而不是查看?
以下是我使用的验证码示例:
//run the validator
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::back()->withInput()->withErrors($validator);
} else {
//do something else(not relevant)
}
答案 0 :(得分:0)
在您的控制器中,您可以使用:
$validator = Validator::make(Input::all(), $rules);
$errors = $validator->errors();
这将为您提供与视图中相同的错误。要访问特定错误,您可以使用:
$error = $validator->errors('someFormFieldName')->first();