Open eondcom opened 2 months ago
오류 나는 부분...
public static function getProduct(int $product_srl)
{
$cache_key = 'hotopay:product:' . $product_srl;
$product = Rhymix\Framework\Cache::get($cache_key);
if(!$product->product_srl) {
$args = new stdClass();
$args->product_srl = $product_srl;
$output = executeQuery('hotopay.getProducts', $args);
if(!$output->toBool() || empty($output->data))
{
return new \BaseObject(-1, "Product does not exist.");
}
$output->data->extra_vars = unserialize($output->data->extra_vars);
$product = $output->data;
}
$product->product_option = self::getProductOptions($product_srl);
Rhymix\Framework\Cache::set($cache_key, $output->data);
return $output->data;
}
아래 코드로 수정함
public static function getProduct(int $product_srl): object
{
$cache_key = 'hotopay:product:' . $product_srl;
$product = Rhymix\Framework\Cache::get($cache_key);
if (!$product || !$product->product_srl) {
$args = new stdClass();
$args->product_srl = $product_srl;
$output = executeQuery('hotopay.getProducts', $args);
if (!$output->toBool() || empty($output->data)) {
// 예외를 던져 일관된 오류 처리
throw new \Exception("Product does not exist.");
}
$output->data->extra_vars = unserialize($output->data->extra_vars);
$product = $output->data;
}
$product->product_option = self::getProductOptions($product_srl);
Rhymix\Framework\Cache::set($cache_key, $product);
return $product;
}
이렇게 처리해주니 해당 문제는 없어졌습니다.
TypeError #0 "HotopayModel::getProductByDocumentSrl(): Return value must be of type object, null returned" in modules/hotopay/hotopay.model.php on line 471 modules/hotopay/hotopay.model.php:471
상품등록시 게시물번호를 입력후에 해당 게시물을 클릭하면 저런 오류가 발생합니다. 다시 새로고침할 경우 정상 동작합니다. (게시물 클릭시마다 이 과정이 매번 동일하게 발생합니다.)