{ Hello Magento 2 }

解决 Magento 2 应用问题,更注重深度挖掘。(ง •̀_•́)ง

0%

resource model 中的 $_isPkAutoIncrement

如果 model 的主键不是自增的,请在 resource model 中写上 $_isPkAutoIncrement = false 通常我们创建一个 model 关联一张表。比如说我表的主键是 sample_id ,他不是自增的。那么使用下面的代码,本来我想插入数据,实际表现却不是很正常,可能插入不了,要么做了更新操作。但是神奇的是可以从数据库中取数据。 插入数据可能不正常

1
2
3
$data = array('sample_id'=>'new_id','custid'=>1,'info'=>'info');
$model = Mage::getModel('interface/data')->setData($data);
$model->save();

读数据正常

1
2
$sample = Mage::getModel('interface/data')->load('sample_id')
var_dump($sample->getData());

原因就是 resource model 中 $_isPkAutoIncrement 没有设置为 false 。该属性是用来判断主键是否自增的,默认为 true ,就是主键自增。 参考: CRUD Models in Magento 2