Какая разница между setData()
а addData()
? Есть ли связь, если я обновляю продукт или устанавливаю новый?
источник
Какая разница между setData()
а addData()
? Есть ли связь, если я обновляю продукт или устанавливаю новый?
setData
переопределяет существующие данные и может получить в качестве параметра либо ключ-значение пары, либо массив.
если вы установите в качестве параметров пару ключ-значение, то $_data[key]
станет value
. Если вы установите в качестве параметра, массив $_data
становится тем массивом, перезаписывающим то, что он содержал ранее.
Пример:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
вызов $obj->setData('k3','v3')
результатов в
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
вызов $obj->setData(array('k3'=>'v3'))
результатов в
$_data = array('k3'=>'v3');
вызов $obj->setData('k2','v2000')
результатов в
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
вызов $obj->setData(array('k2'=>'v2000'))
результатов в
$_data = array('k2'=>'v2000');
addData
получает в качестве параметра только массив и объединяет этот массив с существующими данными.
Пример:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
вызов $obj->addData(array('k3'=>'v3'))
результатов в
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
но вызывая $obj->addData(array('k2'=>'v2000'))
результаты в
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')
то? :-) (замечательно, если вы добавите этот конкретный момент в свой ответ)$obj->setData('k2'=>'v2399393')
а не$obj->setData(array('k2'=>'v2000'))
SetData ()
функция есть
only set one field value on one call
. это можетset multiple field value using multiple call of setData function
.AddData () функция
set multiple field values using array with array key as field index.
Просто пример:
Вы хотите два поля для установки на объекте.
Если я использую,
setData()
то вам нужно сделать этот тип works.need Для двух полей вам нужно вызвать функцию setData в двух случаях.Но если я использую,
addData()
то вы можете сделать этоarray key as field name
addData () и setData () являются двумя
Varien_Object
функциями класса библиотеки .addData () с использованием setData () в файле lib для установки значения поля с помощью цикла.
источник
setData
для установки более одного поля одним вызовом.