¿Cuál es la diferencia entre setData()y addData()? ¿Hay alguna conexión si actualizo un producto o configuro uno nuevo?
fuente
¿Cuál es la diferencia entre setData()y addData()? ¿Hay alguna conexión si actualizo un producto o configuro uno nuevo?
setDataanula los datos existentes y puede recibir como parámetro un par clave-valor o una matriz.
si establece como parámetros, se $_data[key]convierte un par clave-valor value. Si establece como parámetro, una matriz se $_dataconvierte en esa matriz que sobrescribe lo que contenía anteriormente.
Ejemplo:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
llamando a $obj->setData('k3','v3')resultados en
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
llamando a $obj->setData(array('k3'=>'v3'))resultados en
$_data = array('k3'=>'v3');
llamando a $obj->setData('k2','v2000')resultados en
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
llamando a $obj->setData(array('k2'=>'v2000'))resultados en
$_data = array('k2'=>'v2000');
addData recibe como parámetro solo una matriz y fusiona esa matriz con los datos existentes.
Ejemplo:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
llamando a $obj->addData(array('k3'=>'v3'))resultados en
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
pero llamando $obj->addData(array('k2'=>'v2000'))resultados en
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')entonces? :-) (excelente si agrega este punto específico en su respuesta)$obj->setData('k2'=>'v2399393')y no$obj->setData(array('k2'=>'v2000'))setData ()
es la función
only set one field value on one call. puedeset multiple field value using multiple call of setData function.La función addData () es
set multiple field values using array with array key as field index.Solo ejemplo:
Desea dos campos para establecer en el objeto.
Si
setData()estoy usando, entonces necesita hacer este tipo de trabajos.necesidad Para dos campos necesita llamar a la función setData de dos maneras.Pero si estoy usando,
addData()entonces puedes hacer estoarray key as field nameaddData () y setData () son dos
Varien_Objectfunciones de clase Library .addData () usando setData () en el archivo lib para establecer el valor del campo usando loop.
fuente
setDatapara configurar más de un campo con una llamada.