차이 무엇 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(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()
하는 경우이 유형의 작업을 수행해야합니다. 두 필드의 경우 setData 함수를 두 번 호출해야합니다.
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
하지만 내가 사용 addData()
하면이 작업을 수행 할 수 있습니다array key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () 및 setData () 는 두 개의 라이브러리 Varien_Object
클래스 함수입니다.
루프를 사용하여 필드 값을 설정하기 위해 lib 파일에서 setData ()를 사용하는 addData ()
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setData
한 번의 호출로 둘 이상의 필드를 설정 하는 데 사용할 수 있습니다 .
$obj->setData('k2'=>'v2399393')
? :-) (답변에이 특정 지점을 추가하면 좋습니다)