Exemplo n.º 1
0
 /**
  * 验证是否有失败的 validate,失败的 validate 对应的消息会自动被添加到 flash message 中
  *
  * @return boolean
  *
  * @param object $validator  validator 对象
  * */
 protected function validate(Validator $validator)
 {
     $hasError = $validator->hasErrors();
     if (!$hasError) {
         // 没有错误,成功返回
         return true;
     }
     // 有错误,把错误消息放入到 flash Message 中
     $errorArray = $validator->getAllErrors();
     foreach ($errorArray as $errorField => $errorMsg) {
         $this->addFlashMessage($errorMsg);
     }
     return false;
 }
Exemplo n.º 2
0
 protected function validate(Validator $validator)
 {
     $hasError = $validator->hasErrors();
     if (!$hasError) {
         // 没有错误,成功返回
         return;
     }
     // 有错误,收集错误信息,抛出异常
     $errorMsg = '';
     $errorArray = $validator->getAllErrors();
     foreach ($errorArray as $errorField => $errorMsg) {
         $errorMsg .= '{[' . $errorField . '][' . $errorMsg . ']}';
     }
     throw new \InvalidArgumentException($errorMsg);
 }
Exemplo n.º 3
0
 /**
  * 根据 $gatewayType 的不同创建不同的支付网关
  *
  * @return IGateway 对象,不同的支付网关的具体实现
  *
  * @param string $gatewayType 网关类型参数,比如 tenpay_1001 :财付通招商银行直连
  */
 public static function getPaymentGateway($gatewayType)
 {
     // 参数验证
     $validator = new Validator(array('gatewayType' => $gatewayType));
     $gatewayType = $validator->required()->validate('gatewayType');
     $hasError = $validator->hasErrors();
     if ($hasError) {
         // 有错误,收集错误信息,抛出异常
         $errorMsg = '';
         $errorArray = $validator->getAllErrors();
         foreach ($errorArray as $errorField => $errorMsg) {
             $errorMsg .= '{[' . $errorField . '][' . $errorMsg . ']}';
         }
         throw new \InvalidArgumentException($errorMsg);
     }
     if (!array_key_exists($gatewayType, static::$registerKeyArray)) {
         throw new \InvalidArgumentException('unrecognize payment gateway [' . $gatewayType . ']');
     }
     return static::loadKeyInstance($gatewayType);
 }