Qual è la differenza tra setData()
e addData()
? Esiste una connessione se aggiorno un prodotto o ne imposto uno nuovo?
Qual è la differenza tra setData()
e addData()
? Esiste una connessione se aggiorno un prodotto o ne imposto uno nuovo?
Risposte:
setData
sovrascrive i dati esistenti e può ricevere come parametro una coppia chiave-valore o un array.
se imposti come parametri $_data[key]
diventa quindi una coppia chiave-valore value
. Se si imposta come parametro una matrice $_data
diventa quella matrice sovrascrivendo qualsiasi cosa contenesse in precedenza.
Esempio:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
la chiamata $obj->setData('k3','v3')
risulta in
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
la chiamata $obj->setData(array('k3'=>'v3'))
risulta in
$_data = array('k3'=>'v3');
la chiamata $obj->setData('k2','v2000')
risulta in
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
la chiamata $obj->setData(array('k2'=>'v2000'))
risulta in
$_data = array('k2'=>'v2000');
addData
riceve come parametro solo un array e unisce tale array con i dati esistenti.
Esempio:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
la chiamata $obj->addData(array('k3'=>'v3'))
risulta in
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
ma la chiamata $obj->addData(array('k2'=>'v2000'))
risulta in
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')
e non$obj->setData(array('k2'=>'v2000'))
setData ()
la funzione è only set one field value on one call
. può set multiple field value using multiple call of setData function
.
La funzione addData () èset multiple field values using array with array key as field index.
Solo un esempio:
Volete due campi da impostare sull'oggetto.
Se setData()
sto usando, allora devi fare questo tipo di works.need Per due campi devi chiamare la funzione setData in due modi.
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
Ma se sto usando addData()
, puoi farloarray key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () e setData () sono due Varien_Object
funzioni della classe Library .
addData () usando setData () nel file lib per impostare il valore del campo usando loop.
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setData
per impostare più di un campo con una chiamata.
$obj->setData('k2'=>'v2399393')
allora? :-) (ottimo se aggiungi questo punto specifico nella tua risposta)