Apa perbedaan antara setData()dan addData()? Apakah ada koneksi jika saya memperbarui produk atau membuat yang baru?
Apa perbedaan antara setData()dan addData()? Apakah ada koneksi jika saya memperbarui produk atau membuat yang baru?
Jawaban:
setDatamengganti data yang ada dan dapat menerima sebagai parameter baik nilai kunci pasangan maupun array.
jika Anda menetapkan sebagai parameter nilai kunci pasangan kemudian $_data[key]menjadi value. Jika Anda menetapkan sebagai parameter, array $_datamenjadi array yang menimpa apa yang pernah ada sebelumnya.
Contoh:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
$obj->setData('k3','v3')hasil panggilan dalam
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
$obj->setData(array('k3'=>'v3'))hasil panggilan dalam
$_data = array('k3'=>'v3');
$obj->setData('k2','v2000')hasil panggilan dalam
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
$obj->setData(array('k2'=>'v2000'))hasil panggilan dalam
$_data = array('k2'=>'v2000');
addData menerima sebagai parameter hanya array dan menggabungkan array itu dengan data yang ada.
Contoh:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
$obj->addData(array('k3'=>'v3'))hasil panggilan dalam
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
tetapi menelepon $obj->addData(array('k2'=>'v2000'))hasilnya
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')dan tidak$obj->setData(array('k2'=>'v2000'))
setData ()
fungsi adalah only set one field value on one call. itu bisa set multiple field value using multiple call of setData function.
fungsi addData () adalahset multiple field values using array with array key as field index.
Contoh Saja:
Anda ingin dua bidang disetel pada objek.
Jika saya menggunakan setData()maka Anda perlu melakukan ini jenis works.need Untuk dua bidang Anda perlu memanggil fungsi setData dua bijaksana.
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
Tetapi jika saya menggunakan addData()maka Anda bisa melakukan iniarray key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () dan setData () adalah dua Varien_Objectfungsi kelas Library .
addData () menggunakan setData () di file lib untuk menetapkan nilai bidang menggunakan loop.
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setDatauntuk mengatur lebih dari satu bidang dengan satu panggilan.
$obj->setData('k2'=>'v2399393')? :-) (hebat jika Anda menambahkan poin spesifik ini dalam jawaban Anda)