Kullanıcı tanımlı bir özellik ile kullanıcı tanımlı olmayan bir özellik arasındaki fark nedir?


11

Aşağıdaki gibi tanımlanan bir müşteri özelliğine sahibim:

$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
]);

Sorum şu: Ben ayarlarsanız özellik hakkında ne fark user_definedetmek false? Ve hangi durumlarda ben belirlesin user_definediçin trueya false?

Yanıtlar:


22

Aslında Magento user_defined = false öznitelikleri sistem öznitelikleri olarak bilinir. Bu nedenle Magento, yönetici panelinden silemediğimiz bazı sistem özelliklerine sahiptir. Dolayısıyla magento sistem özniteliğinin silinmesine izin vermez. Onları veritabanı aracılığıyla silebiliriz, ancak güvenli değildir.

Yani sistem öznitelikleri olarak oluşturabileceğimiz öznitelik türünde bir sistemi çalıştırmak için gerekli olan öznitelikler. Ancak karşı tarafta, kullanıcı tanımlı nitelikleri yönetici panelinden kolayca silebiliriz.

Umarım yardımcı olur Teşekkürler.


5

Magento sistem öznitelikleri user_definedfalse için ayarlanır, böylece özel özniteliklerimiz olarak ayarlanmalıdır . Eğer ayarlarsanız Sistem nitelikleri böylece silinemez için user_defined , sizin nitelik sistem niteliği olarak çalışacaktır.truefalse


1
Yani sadece gösterim amaçlı, aralarında gerçek bir fark yok mu?
PY Yick

3

Buna eklemek için:

Eğer aracılığıyla özelliklerini eklerseniz Install-/ UpdateSchemamarka emin eklemek 'user_defined' => true. Yapılandırılabilir ürünler için yalnızca sistem dışı özellikler (örn. İs_user_defined = 1) kullanılabilir.


2

Aslında, Magento 1'i öğrendiğimde büyük bir fark görüyorum . Bir öznitelik user_defined = true olarak ayarlanmışsa eav_entity_attribute tablosunda oluşturulmaz . Ama yine de eav_attribute tablosunda bulabilirsiniz . Set halinde user_defined = false , oluşturulduktan sonra zaman hem görünecektir eav_entity_attribute ve eav_attribute tabloları. Ama karşılığında, bunun neden fark yarattığını / etkilediğini bilmiyorum.

Magento 2'den emin değilim, ama sanırım bunu kolayca doğrulayabilir ve başkalarına bildirebilirsiniz.


1

Bir özellik 'user_defined' olarak ayarlanmışsa, kullanıcı özellik kullanıcı arabirimi içindeki seçenek değerlerini tanımlayabilir.

Ancak bir kaynak model kullanıyorsanız, 'user_defined' öğesi false olarak ayarlanmalıdır, aksi takdirde kaynak modeldeki seçenekler yüklenmez.


1

user_defined = true öznitelikleri genellikle ürüne özel bilgilere sahip olmak için katalog yöneticisi tarafından oluşturulur.
user_defined = false , niteliğe dayalı olarak benzer iş veya bazı ek özelliği sağlayan herhangi modülüne bazı işlevleri için gerekli olan Magento varsayılan özellikleri için SKU'ya , qty , website_ids , product_online sistem miktar ve ürünün kapsamını yönetmek için gerekli niteliklerini edilir aynı şekilde is_featured veya show_on_homepage , bazı özellikler sağlamak için arka uçta bir şeyler yapan bir özellik olabilir ve yönetici kullanıcı tarafından işlevselliği bozabilecek bir şekilde silinmemelidir.


1

Kullanıcı tanımlı bir başka şey de, öznitelik seçeneklerini arka ofisdeki öznitelik düzenleme sayfasından düzenleyip düzenleyemeyeceğinizi belirlemesi, bunun için bir yönetici kullanıcısının değiştirmesini istemediğiniz belirli etiketlere sahip bir özelliğiniz varsa, "user_defined" değerini false olarak ayarlamanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.