質問

私は知っている間 同様の質問.私の質問は、実際にデータベース列を作成するかどうかにかかわらず、両方の呼び出しに何が起こるかというより一般的です。

編集

分かってる。 addColumn() 実際のテーブル列を追加しますが、いくつかのコアモジュールに飛び込むとき、それらのいくつかは両方を呼び出しています addColumn()addAttribute() 同じフィールドに。

それらの違いは何ですか?

編集2

なぜならば addAttribute() いくつかの研究の後、私はまたのようないくつかの同様の名前を見つける、私に関連する非常に多くのEAVに見えます addAttributeSet()addAttributeSetNames().

彼らはお互いにどのように違うのですか?

役に立ちましたか?

解決

それを一歩一歩踏み出しましょう。

  • addColumn テーブルに列を追加します。
  • addAttribute EAVエンティティの新しい属性を追加します。そのため、新しいレコードが作成されます。 eav_attribute テーブル。
  • 例外:販売モジュールの場合, addColumnaddAttribute 同じことをしてください。テーブルに列を追加します。その理由は後方互換性です。バージョン1.4より前では、販売エンティティ(注文、請求書、出荷、アイテム、。..)はEAVだったので、使用しなければなりませんでした addAttribute.1.4以降では、販売エンティティはフラットであるため、次のように使用する必要があります addColumn.しかし、後方互換性のために、バージョン1.4を起動します, addAttribute ただのラッパーです addColumn.
  • addAttributeSet EAVエンティティに使用され、それが言うことを行います。そのエンティティの新しい属性セットを作成します。他のすべてのEAVエンティティ(category、customer、customer_address)は単一の属性セットを使用するため、製品にのみ使用されると思います。
  • addAttributeSetNames -コアコードのどこにもこれが発生していませんでした。
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top