¿Cuál es la diferencia entre setData()
y addData()
? ¿Hay alguna conexión si actualizo un producto o configuro uno nuevo?
¿Cuál es la diferencia entre setData()
y addData()
? ¿Hay alguna conexión si actualizo un producto o configuro uno nuevo?
Respuestas:
setData
anula 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 $_data
convierte 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')
y no$obj->setData(array('k2'=>'v2000'))
setData ()
es la función only set one field value on one call
. puede set multiple field value using multiple call of setData function
.
La función addData () esset 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.
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
Pero si estoy usando, addData()
entonces puedes hacer estoarray key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () y setData () son dos Varien_Object
funciones de clase Library .
addData () usando setData () en el archivo lib para establecer el valor del campo usando loop.
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setData
para configurar más de un campo con una llamada.
$obj->setData('k2'=>'v2399393')
entonces? :-) (excelente si agrega este punto específico en su respuesta)