在zend框架中将验证错误从模型传递给控制器

时间:2012-10-06 17:19:45

标签: php oop zend-framework

在Zend Framework中,我在模型类中验证用户提供的数据,如

public function valiateRegisterForm($regisInfo)
{
   //validating with zend_filter_input which on failure returns array of arrays i.e
  //(error code to array of error messages) 
}

现在我已经创建了一个方法getErrorMessage()让控制器从模型中获取错误消息,但是我必须在我的每个模型类中创建这个方法,这将导致冗余,所以我应该创建另一个像ErrorManager的对象?

对我来说,好像我只是没有以正确的方式关注事情 请提出一些处理zend框架错误的好方法。

1 个答案:

答案 0 :(得分:1)

我可能不理解你的问题但是,我会从你的“validateRegisterFrom”方法返回Zend_Filter_Input对象。对象有一个“getMessages”方法,它返回验证错误。

public function valiateRegisterForm($regisInfo)
{
      $filters = array();
      $validators = array();

      $input = new Zend_Filter_Input($filters, $validators, $regisInfo);

      // do validating

      return $input;
 }

并在您的控制器中

public function whateverAction()
{
     $result = $My_Model_Register->validateRegisterForm($data);

     if ($result->hasInvalid()) {
         $errors = $result->getMessages();
     }
}