2013-12-08 35 views
0

我正在使用Laravel 4验证。我的基本设置已完成并经过测试。我可以填写表格并提交给控制器。我可以使用模型将所有细节保存到数据库。我现在遇到了验证问题。laravel中的验证使用4

我使用Input :: get()来捕获控制器中的每个张贴变量。我读到验证应该在模型中完成。我应该在哪里调用验证器?型号还是控制器?以及我应该如何通过验证器的$输入?它是所有变量发布的数组还是我错过了什么?

Laravel 4文档确实无法说明常见用法问题的例子答案。

这是我在我的模型建立验证:

public static function validate($input) 
    { 
     $rules = array(
      # place-holder for validation rules 
      'firstname' => 'Required|Min:3|Max:40|Alpha', 
      'lastname' => 'Required|Min:3|Max:40|Alpha', 
      'email'  => 'Required|Between:3,64|Email|Unique:users', 
      'country'  => 'Required', 
      'password' =>'Required|AlphaNum|Between:7,15|Confirmed', 
      'password_confirmation'=>'Required|AlphaNum|Between:7,15' 

     ); 

     # validation code 
     $validator = Validator::make($input, $rules); 

     /*if($validator->passes()) { 

     } else { 
      # code for validation failure 
     }*/ 
    } 

控制器:

public function register() 
    { 
     /*Create new user if no user with entered email exists. Use validator to ensure all fields are completed*/ 
     $user = new User; 

     /*Handle input in POST*/ 
     $email = Input::get('email'); 
     $password = Input::get('password'); 
     $passwordConfirmed = Input::get('password_confirmation'); 
     $firstName = Input::get('firstname'); 
     $lastName = Input::get('lastname'); 
     $country = Input::get('country'); 

     $user->email = $email; 
     $user->password = Hash::make($password); 
     $user->firstname = $firstName; 
     $user->lastname = $lastName; 
     $user->country = $country; 

     //$user->save(); 


     $this->layout->content = View::make('test'); 
    } 

,我一直在关注this link到目前为止,当谈到验证。请帮助,因为我是新来这个框架

回答

1

你缺少的验证输入,你没有将它定义

使用它像

$input = Input::all(); 

$validator = Validator::make($input, $rules); 

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

和看看论坛,这将帮助你超过那个博客:http://forums.laravel.io/viewtopic.php?id=12104

+0

Sho验证是否发生在控制器或模型中?没有关于这方面的明确信息,但我猜控制器给出它是逻辑 – spacemonkey

+0

选择什么适合你的应用程序什么你正在建设,但它的可选将它放在模型中,并且有一件事检查此包https:// github .com/laravelbook/ardent,很多人使用它,包括我自己,会为您节省大量的时间和强大的 –

+0

感谢您从控制器中获得了工作。尽管某些博客的建议声明在模型中使用它,但我决定与控制器一起使用,因为它是逻辑,除非准备好存储,否则数据永远不会到达模型。 – spacemonkey