Magento2에서 정적 메서드를 재정의하는 방법


11

플러그인 인터셉터 및 환경 설정으로 대체는 정적 메소드에서 작동하지 않습니다.

사용자 지정 가시성을 반환하려면 Magento \ Catalog \ Model \ Product \ Visibility 에서 getOptionArray 메서드 를 재정의해야합니다.

/**
     * Retrieve option array
     *
     * @return array
     */
    public static function getOptionArray()
    {
        return [
            self::VISIBILITY_NOT_VISIBLE => __('Not Visible Individually'),
            self::VISIBILITY_IN_CATALOG => __('Catalog'),
            self::VISIBILITY_IN_SEARCH => __('Search'),
            self::VISIBILITY_BOTH => __('Catalog, Search')
        ];
    }

다른 방법으로는 이것이 가능합니까?


아니요. 새로운 공개 옵션을 추가하는 방법을 묻습니다. 정적 메소드 인 getOption 배열은 인터셉터 또는 환경 설정으로 수정할 수 없습니다.
user3339988

죄송합니다. 잘못된 질문을 표시했습니다. 이것은 당신을 도울 것입니다 magento.stackexchange.com/questions/134386/…
PY Yick

그 사람은 내 질문에 대답하지 않습니다.
user3339988

누군가? 나는 2-3 일 동안이 문제에 봉착했습니다. 가시성 옵션을 추가하는 다른 방법은 무엇입니까?
user3339988

답변:


1

단지 재정 getOptionArray()이 젠토 \ 카탈로그 \ 라인 (107), (120) 및 (134)에서 모델 \ 제품 \ 가시성에서 볼 경우, 때문에 충분하지 않습니다 getOptionArray()불려 self따라서 단순히 복사해야합니다, 항상 새로운 일이 아니라 원래 메소드를 호출 .Self 붙여 넣기 getAllOption(), getAllOptions()getOptionText()(당신이 오버라이드 (override) 한 경우 동일 재정의 된 모델 클래스에서 getOptionArray())

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.