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 $_datazu 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;
}
setDatamehr 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)