Quelle est la différence entre setData()
et addData()
? Existe-t-il une connexion si je mets à jour un produit ou en crée un nouveau?
la source
Quelle est la différence entre setData()
et addData()
? Existe-t-il une connexion si je mets à jour un produit ou en crée un nouveau?
setData
remplace les données existantes et peut recevoir en paramètre soit une paire valeur / clé soit un tableau.
si vous définissez des paramètres, une paire valeur-clé $_data[key]
devient alors value
. Si vous définissez comme paramètre un tableau $_data
devient ce tableau écrasant ce qu'il contenait auparavant.
Exemple:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
l'appel $obj->setData('k3','v3')
entraîne
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
l'appel $obj->setData(array('k3'=>'v3'))
entraîne
$_data = array('k3'=>'v3');
l'appel $obj->setData('k2','v2000')
entraîne
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
l'appel $obj->setData(array('k2'=>'v2000'))
entraîne
$_data = array('k2'=>'v2000');
addData
reçoit en paramètre uniquement un tableau et il fusionne ce tableau avec les données existantes.
Exemple:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
l'appel $obj->addData(array('k3'=>'v3'))
entraîne
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
mais appeler $obj->addData(array('k2'=>'v2000'))
résulte en
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')
alors? :-) (super si vous ajoutez ce point spécifique dans votre réponse)$obj->setData('k2'=>'v2399393')
et non$obj->setData(array('k2'=>'v2000'))
setData ()
la fonction est
only set one field value on one call
. c'est possibleset multiple field value using multiple call of setData function
.La fonction addData () est
set multiple field values using array with array key as field index.
Juste un exemple:
Vous souhaitez définir deux champs sur l'objet.
Si
setData()
j'utilise, vous devez faire ce type de travaux. Besoin Pour deux champs, vous devez appeler la fonction setData à deux.Mais si j'utilise
addData()
alors vous pouvez le fairearray key as field name
addData () et setData () sont deux
Varien_Object
fonctions de classe Library .addData () utilisant setData () dans le fichier lib pour définir la valeur du champ en utilisant la boucle.
la source
setData
pour définir plusieurs champs avec un seul appel.