2014-09-16 2 views
0

모델에서 값을 반환하는 제품 속성이 필요합니다. "eav_attribute"가 포함 된 다음 필드에있는Magento 속성 (모델 반환 값을 허용 하시겠습니까?)

속성 :

  • attribute_model
  • backend_model
  • frontend_model
  • source_model

내가 어떻게 진행합니까? 나는 이미 붙어있다.

+0

예를 들려 줄 수 있습니까? – Marius

+0

기본적으로 제품 속성을로드 할 때 우리는 백엔드에서 입력 한 값을 제공합니다. 데이터베이스 항목이 아닌 PHP에서 값을 반환하는 특성이 필요합니다. 그래서 내가 $ _product-> getMyAttribute()를로드 할 때; 모델이 대답을 반환합니다. 애트리뷰트가 다른 제품 값을 합산한다고 가정 해 보겠습니다 (가격 + 배송 + 랜드 및 (1,10)). – Kurdt94

답변

0

모델에서 오는 값에 대한 해결책이 없지만 동일한 결과를 얻는 몇 가지 대안이 있습니다.

옵션 1 - 관측자 접근법.
catalog_product_load_after 이벤트에 대한 옵저버를 만들어 필요한 값을 계산하여 제품에 저장할 수 있습니다.

public function catalogProductLoadAfter($observer) { 
    $product = $observe->getEvent()->getProduct(); 
    $myAttributeValue = $product->getPrice() + rand(1, 10); 
    $product->setMyAttribute($myAttributeValue); 
} 

그럼 당신은 $product->getMyAttribute()를 호출 할 수 있으며 올바른 결과를 얻을 것이다.

옵션 2 - 다시 작성하십시오.
제품 모델을 다시 작성하고 속성 값의 논리가 포함 된 getMyAttribute이라는 메서드를 추가하십시오.

관련 문제