Was ist der Unterschied zwischen setData()
und addData()
? Besteht eine Verbindung, wenn ich ein Produkt aktualisiere oder ein neues einstelle?
Was ist der Unterschied zwischen setData()
und addData()
? Besteht eine Verbindung, wenn ich ein Produkt aktualisiere oder ein neues einstelle?
Antworten:
setData
Überschreibt die vorhandenen Daten und kann als Parameter entweder ein Schlüsselpaar-Wert oder ein Array empfangen.
Wenn Sie als Parameter einen Paar-Schlüsselwert festlegen, $_data[key]
wird dieser zu value
. Wenn Sie als Parameter festlegen, wird ein Array $_data
zu dem Array, das überschreibt, was immer es zuvor enthielt.
Beispiel:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
$obj->setData('k3','v3')
Ergebnisse aufrufen in
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
$obj->setData(array('k3'=>'v3'))
Ergebnisse aufrufen in
$_data = array('k3'=>'v3');
$obj->setData('k2','v2000')
Ergebnisse aufrufen in
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
$obj->setData(array('k2'=>'v2000'))
Ergebnisse aufrufen in
$_data = array('k2'=>'v2000');
addData
empfängt als Parameter nur ein Array und führt dieses Array mit den vorhandenen Daten zusammen.
Beispiel:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
$obj->addData(array('k3'=>'v3'))
Ergebnisse aufrufen in
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
aber das Aufrufen von $obj->addData(array('k2'=>'v2000'))
Ergebnissen in
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')
und nicht$obj->setData(array('k2'=>'v2000'))
setData ()
Funktion ist only set one field value on one call
. es kann set multiple field value using multiple call of setData function
.
Die Funktion addData () istset multiple field values using array with array key as field index.
Nur ein Beispiel:
Sie möchten zwei Felder für ein Objekt festlegen.
Wenn ich benutze, setData()
dann müssen Sie diese Art von Arbeiten machen. Für zwei Felder müssen Sie setData-Funktion zwei-fach aufrufen.
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
Aber wenn ich addData()
dann benutze, kannst du das tunarray key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () und setData () sind zwei Bibliotheksklassenfunktionen Varien_Object
.
addData () mit setData () in der lib-Datei zum Festlegen des Feldwerts mit loop.
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setData
mehr als ein Feld mit einem Aufruf festlegen.
$obj->setData('k2'=>'v2399393')
dann tun ? :-) (großartig, wenn Sie diesen speziellen Punkt in Ihrer Antwort hinzufügen)