addAttribute()とaddColumn()はどちらですか?
-
12-12-2019 - |
質問
私は知っている間 同様の質問.私の質問は、実際にデータベース列を作成するかどうかにかかわらず、両方の呼び出しに何が起こるかというより一般的です。
編集
分かってる。 addColumn()
実際のテーブル列を追加しますが、いくつかのコアモジュールに飛び込むとき、それらのいくつかは両方を呼び出しています addColumn()
と addAttribute()
同じフィールドに。
それらの違いは何ですか?
編集2
なぜならば addAttribute()
いくつかの研究の後、私はまたのようないくつかの同様の名前を見つける、私に関連する非常に多くのEAVに見えます addAttributeSet()
と addAttributeSetNames()
.
彼らはお互いにどのように違うのですか?
解決
それを一歩一歩踏み出しましょう。
addColumn
テーブルに列を追加します。addAttribute
EAVエンティティの新しい属性を追加します。そのため、新しいレコードが作成されます。eav_attribute
テーブル。- 例外:販売モジュールの場合,
addColumn
とaddAttribute
同じことをしてください。テーブルに列を追加します。その理由は後方互換性です。バージョン1.4より前では、販売エンティティ(注文、請求書、出荷、アイテム、。..)はEAVだったので、使用しなければなりませんでしたaddAttribute
.1.4以降では、販売エンティティはフラットであるため、次のように使用する必要がありますaddColumn
.しかし、後方互換性のために、バージョン1.4を起動します,addAttribute
ただのラッパーですaddColumn
. addAttributeSet
EAVエンティティに使用され、それが言うことを行います。そのエンティティの新しい属性セットを作成します。他のすべてのEAVエンティティ(category、customer、customer_address)は単一の属性セットを使用するため、製品にのみ使用されると思います。addAttributeSetNames
-コアコードのどこにもこれが発生していませんでした。
所属していません magento.stackexchange