la ::回传控制器中的laravel验证输出

时间:2014-03-16 20:24:04

标签: validation error-handling laravel

让我告诉你我的情况。我已经制作了一个简单的库/模块,我可以在我的控制器中弹出。这样我可以使用一个视图文件,只需更改一些$ 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)
}

1 个答案:

答案 0 :(得分:0)

在您的控制器中,您可以使用:

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

$errors = $validator->errors();

这将为您提供与视图中相同的错误。要访问特定错误,您可以使用:

$error = $validator->errors('someFormFieldName')->first();