ฉันมีปัญหาในการรับค่าของโมเดลที่กำหนดเองเพื่ออัปเดตเป็น NULL
$model = Mage::getModel('custom/model')->load($id);
$model->setCustomValue(NULL);
$model->save();
รหัสนี้ไม่ปรับปรุงฟิลด์custom_value
ในฐานข้อมูลและค่าฐานข้อมูลยอมรับค่า NULL (การตั้งค่า NULL ด้วยตนเองในฐานข้อมูลทำงานได้ดี)
แก้ไข:
ตามที่ Tim กล่าวถึงการใช้งานด้านล่างนี้Zend_Db_Expr("NULL")
จะทำให้ค่าเป็นโมฆะทุกคนสามารถอธิบายได้ว่าทำไมสิ่งนี้จึงเป็นสิ่งจำเป็นใน Magento และไม่ใช่แค่ php เพียงอย่างเดียวNULL
?
เพียงลอง $ model-> setCustomValue ("");
—
Mufaddal
ประเภทของเขตข้อมูลตารางคือ
—
Invoke
double
และฉันได้ลองประเภทตัวเลขอื่น ๆ เช่นdecimal
และการทำ$model->setCustomValue("");
ตั้งค่าเป็น0
แล้วไง
—
user487772
$null = new Zend_Db_Expr("NULL");
ล่ะ
@Invoke เพื่อตอบคำตอบของคุณหากคุณตั้งเป็น "NULL" Magento จะคิดว่าคุณไม่ต้องการอัปเดตค่า ตามที่ Tim แนะนำคุณต้องระบุว่าเป็นฐานข้อมูล "NULL" ที่คุณต้องการตั้งค่า
—
Mayers
ขอบคุณ @ mayers-dev พฤติกรรมที่น่าสนใจ ฉันเดาว่ามันถูกออกแบบมาให้เป็นส่วนหนึ่งของประโยคที่คุณต้องยกเลิกการปรับปรุงที่ตั้งใจไว้ในขณะที่สร้างมูลค่าตัวเอง
—
วิงวอน