Sự khác biệt giữa setData()
và là addData()
gì? Có kết nối nào nếu tôi cập nhật sản phẩm hoặc đặt sản phẩm mới không?
Sự khác biệt giữa setData()
và là addData()
gì? Có kết nối nào nếu tôi cập nhật sản phẩm hoặc đặt sản phẩm mới không?
Câu trả lời:
setData
ghi đè dữ liệu hiện có và có thể nhận dưới dạng tham số hoặc cặp giá trị khóa hoặc là một mảng.
nếu bạn đặt làm tham số, một cặp khóa-giá trị $_data[key]
sẽ trở thành value
. Nếu bạn đặt làm tham số, một mảng $_data
sẽ trở thành mảng đó ghi đè lên những gì nó chứa trước đó.
Thí dụ:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
$obj->setData('k3','v3')
kết quả cuộc gọi trong
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
$obj->setData(array('k3'=>'v3'))
kết quả cuộc gọi trong
$_data = array('k3'=>'v3');
$obj->setData('k2','v2000')
kết quả cuộc gọi trong
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
$obj->setData(array('k2'=>'v2000'))
kết quả cuộc gọi trong
$_data = array('k2'=>'v2000');
addData
chỉ nhận tham số là một mảng và nó hợp nhất mảng đó với dữ liệu hiện có.
Thí dụ:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
$obj->addData(array('k3'=>'v3'))
kết quả cuộc gọi trong
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
nhưng gọi $obj->addData(array('k2'=>'v2000'))
kết quả trong
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')
và không$obj->setData(array('k2'=>'v2000'))
setData ()
chức năng là only set one field value on one call
. nó có thể set multiple field value using multiple call of setData function
.
Hàm addData () làset multiple field values using array with array key as field index.
Ví dụ:
Bạn muốn hai trường để đặt tại đối tượng.
Nếu tôi sử dụng setData()
thì bạn cần phải thực hiện loại công việc này. Cần hai trường bạn cần gọi hàm setData hai khôn ngoan.
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
Nhưng nếu tôi sử dụng addData()
thì bạn có thể làm điều nàyarray key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () và setData () là hai Varien_Object
hàm lớp Thư viện .
addData () sử dụng setData () tại tệp lib để đặt giá trị trường bằng vòng lặp.
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setData
để đặt nhiều trường với một cuộc gọi.
$obj->setData('k2'=>'v2399393')
sau đó? :-) (thật tuyệt nếu bạn thêm điểm cụ thể này vào câu trả lời của bạn)