Addattribute () vs AddColumn ()?
-
12-12-2019 - |
Domanda
Mentre sono consapevole del Domanda simile .La mia domanda è più generica, che ciò che accadrebbe a entrambe le chiamate se creano effettivamente una colonna di database o meno.
Modifica
Conosco addColumn()
aggiungerà una colonna della tabella reale, ma quando sono immersioni in alcuni moduli di base, alcuni di loro stanno chiamando sia addColumn()
e addAttribute()
allo stesso campo.
Qual è la differenza tra loro?
Modifica 2
Poiché addAttribute()
sembra molto rispettato da me, dopo alcune ricerche, trovo anche alcuni nomi simili come addAttributeSet()
e addAttributeSetNames()
.
Come si differiscono l'un l'altro?
Soluzione
Prendiamolo passo dopo passo.
- .
-
addColumn
aggiunge una colonna a una tabella. -
addAttribute
aggiunge un nuovo attributo per entità EAV. Quindi un nuovo record verrà creato nella tabellaeav_attribute
. - L'eccezione: per il modulo di vendita,
addColumn
eaddAttribute
fai la stessa cosa. Aggiungono una colonna a un tavolo. La ragione è la compatibilità all'indietro. Prima della versione 1.4, le entità di vendita (ordini, fatture, spedizioni, articoli, ...) erano EAV in modo da poter utilizzareaddAttribute
. A partire da 1,4 Le entità di vendita sono piatte in modo da utilizzareaddColumn
. Ma per la compatibilità all'indietro, la versione di avviamento 1.4,addAttribute
è solo un wrapper peraddColumn
. -
addAttributeSet
viene utilizzato per entità EAV e fa ciò che dice. Crea un nuovo set di attributi per quell'entità. Penso che sia utilizzato solo per i prodotti, perché tutte le altre entità EAV (categoria, cliente, customer_address) utilizzano un singolo set di attributi. -
addAttributeSetNames
- Non ho trovato alcuna occorrenza di questo in qualsiasi punto del codice principale.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange