/** * 验证是否有失败的 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; }
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); }
/** * 根据 $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); }