我尝试验证输入,但输入错误时不显示错误并重定向到另一个url.My代码是这样的:
$rules = [
'point' => 'required|numeric|min:0|max:10',
'id_tieuchi' => 'required|numeric|min:1'
];
和
foreach ($data as $value)
{
$validator = Validator::make( $value, $rules);
}
我也在foreach中使用语法但没有工作,因为控制器无法理解基本网址user
中的../evaluate/$user/edit
:
if ($validator->fails())
return redirect('evaluate/{user}/edit')->withInput()->with('message',$validator->messages()->all());
答案 0 :(得分:2)
Laravel附带了将为您处理此逻辑的请求。您可以像这样利用它们:
在App \ Http \ Requests中,创建一个FooRequest.php并将此代码添加到其中:
<?php
namespace App\Http\Requests;
class FooRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'point' => 'required|numeric|min:0|max:10',
'id_tieuchi' => 'required|numeric|min:1'
];
}
}
在你的FooController.php中,请务必将其添加到文件的顶部:
use App\Http\Requests\FooRequest;
然后在你的控制器方法中,使用FooRequest:
public function bar(FooRequest $request)
{
// Do stuff here...
}
FooRequest将验证您发送到bar方法的任何输入。如果存在验证错误,它将自动重定向回到您来自验证器中的错误的任何页面。如果验证通过,它将在$ request中使用请求中的项目输入bar
方法。
有关详情,请参阅validation in Laravel。