2016-03-04 65 views
1

我尝试验证输入,但是当输入不正确不显示错误,并重定向到另一个url.My代码是这样的:验证失败,但已重新引导到控制器laravel

$rules = [ 
      'point' => 'required|numeric|min:0|max:10', 
      'id_tieuchi' => 'required|numeric|min:1' 
     ]; 

foreach ($data as $value) 
     { 
      $validator = Validator::make($value, $rules); 
     } 

我也使用语法到的foreach但不工作,因为控制器不明白是什么在基本URL ../evaluate/$user/edituser

if ($validator->fails()) 
       return redirect('evaluate/{user}/edit')->withInput()->with('message',$validator->messages()->all()); 

回答

2

Laravel附带可为您处理此逻辑的请求。您可以利用他们像这样:

在应用程序\ HTTP \请求,创建一个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方法的任何输入。如果验证错误存在,它将自动重定向到验证器中出现错误的任何页面。如果验证通过,它将输入bar方法,请求中的项目在$ request中。

欲了解更多信息,请阅读validation in Laravel

+0

它的工作,但在这种情况下'点'和'id_tieuchi'是一个数组,所以不能做 –

+0

@你是什么意思是一个数组?你能扩展吗? –

+0

@long hoangvan https://laravel.com/docs/5.2/validation#validating-arrays – Jeemusu