Arasındaki fark nedir setData()
ve addData()
? Bir ürünü güncellersem veya yeni bir ürün ayarlarsam bağlantı olur mu?
Arasındaki fark nedir setData()
ve addData()
? Bir ürünü güncellersem veya yeni bir ürün ayarlarsam bağlantı olur mu?
Yanıtlar:
setData
var olan verileri geçersiz kılar ve parametre olarak ya bir çift anahtar / değer çiftini bir dizi olarak alabilir.
parametre olarak ayarlarsanız bir çift anahtar / değer çifti $_data[key]
olur value
. Parametre olarak ayarlarsanız, bir dizi $_data
daha önce içerdiği dizinin üzerine yazılır.
Misal:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
arama $obj->setData('k3','v3')
sonuçları
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
arama $obj->setData(array('k3'=>'v3'))
sonuçları
$_data = array('k3'=>'v3');
arama $obj->setData('k2','v2000')
sonuçları
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
arama $obj->setData(array('k2'=>'v2000'))
sonuçları
$_data = array('k2'=>'v2000');
addData
parametre olarak yalnızca bir diziyi alır ve bu diziyi var olan verilerle birleştirir.
Misal:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
arama $obj->addData(array('k3'=>'v3'))
sonuçları
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
ancak $obj->addData(array('k2'=>'v2000'))
sonuçları
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')
ve değil$obj->setData(array('k2'=>'v2000'))
setData ()
işlevi only set one field value on one call
. olabilir set multiple field value using multiple call of setData function
.
addData () işleviset multiple field values using array with array key as field index.
Sadece Örnek:
Nesnede iki alanın ayarlanmasını istiyorsunuz.
Eğer i kullanıyorsanız setData()
o zaman bu tür işleri yapmanız gerekir. İki alan için setData işlevini akıllıca çağırmanız gerekir.
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
Ama eğer kullanırsam addData()
bunu yapabilirsinarray key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () ve setData () , iki Library Varien_Object
sınıfı işlevidir.
döngü kullanarak set alanı değerini ayarlamak için lib dosyasında setData () kullanarak addData () yöntemi.
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setData
Bir çağrı ile birden fazla alan ayarlamak için kullanabilirsiniz .
$obj->setData('k2'=>'v2399393')
? :-) (cevabınıza bu özel noktayı eklerseniz harika)