사용자 정의 속성과 비 사용자 정의 속성의 차이점은 무엇입니까?


11

고객 속성이 다음과 같이 정의되어 있습니다.

$customerSetup->addAttribute(Customer::ENTITY, "attr_code",  [
            "type"     => "varchar",
            "backend"  => "",
            "label"    => "Attribute Label",
            "input"    => "text",
            "source"   => "Magento\Eav\Model\Entity\Attribute\Source\Table",
            "visible"  => true,
            "required" => false,
            "default"  => "",
            "frontend" => "",
            "unique"   => false,
            "note"     => "",
            'system'   => 0,
            'user_defined' => true
]);

내 질문은 : 내가 설정 한 경우 속성의 차이가 무엇 user_defined에가 false? 그리고 어떤 상황 user_defined에서 true또는로 설정해야 false합니까?

답변:


22

실제로 Magento user_defined = false 속성은 시스템 속성이라고합니다. 따라서 Magento는 시스템 속성 중 일부를 가지고 있으며 관리자 패널에서 삭제할 수 없습니다. 따라서 magento는 시스템 속성을 삭제할 수 없습니다. 데이터베이스를 통해 삭제할 수 있지만 안전하지는 않습니다.

따라서 속성 유형의 시스템을 실행하는 데 필요한 속성은 시스템 속성으로 만들 수 있습니다. 그러나 반대편에서는 관리자 패널에서 사용자 정의 속성을 쉽게 삭제할 수 있습니다.

그것이 도움이되기를 바랍니다.


5

마 젠토 시스템 속성으로 설정 false하기위한 user_defined 우리의 사용자 정의 속성을 설정해야합니다 그래서 true. 시스템 속성은 삭제할 수 없으므로 user_defined로 설정 false하면 속성이 시스템 속성으로 작동합니다.


1
그래서 당신은 그것이 단지 표시를위한 것이며, 그들 사이의 실제 차이점은 없다는 것을 의미합니까?
PY Yick

3

이것에 추가하려면 :

를 통해 속성을 추가하는 경우 Install-/ UpdateSchema에 추가해야 'user_defined' => true합니다. 구성 불가능한 제품에는 비 시스템 속성 (예 : is_user_defined = 1) 만 사용할 수 있습니다.


2

실제로, 나는 Magento 1을 배울 때 큰 차이를 발견했습니다 . 속성이 user_defined = true 로 설정된 경우 eav_entity_attribute 테이블에 작성되지 않습니다 . 그러나 여전히 eav_attribute 테이블에서 찾을 수 있습니다 . user_defined = false로 설정하면 생성 될 때 eav_entity_attributeeav_attribute 테이블 모두에 나타납니다 . 그러나 그 대가로 이것이 왜 차이가 / 영향을 미치는지 모르겠습니다.

Magento 2에 대해 잘 모르겠지만 쉽게 확인하고 다른 사람들에게 알려줄 수 있습니다.


1

속성이 'user_defined'로 설정된 경우 사용자는 속성 사용자 인터페이스 내에서 옵션 값을 정의 할 수 있습니다.

그러나 소스 모델을 사용하는 경우 'user_defined'를 false로 설정해야합니다. 그렇지 않으면 소스 모델의 옵션이로드되지 않습니다.


1

user_defined = true 속성은 일반적으로 제품 별 정보를 갖기 위해 카탈로그 매니저에 의해 작성됩니다. 일부 기능이 작동하는 데 필요한 Magento 기본 속성 또는 sku , qty , website_ids , product_online 과 같은 속성을 기반으로 추가 기능을 제공하는 모든 모듈에 대해
user_defined = false 인 경우 is_featured 또는 show_on_homepage 는 일부 기능을 제공하기 위해 백엔드에서 작업을 수행하는 일부 속성 일 수 있으며 기능을 손상 시킬 수있는 관리자가 삭제해서는 안됩니다.


1

사용자가 정의한 또 다른 것은 백 오피스의 속성 편집 페이지에서 속성 옵션을 편집 할 수 있는지 여부를 결정하므로 관리자가 변경하지 않으려는 특정 레이블이있는 속성이있는 경우, "user_defined"를 false로 설정해야합니다.

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