resource model 中的 $_isPkAutoIncrement

如果 model 的主键不是自增的,请在 resource model 中写上 $_isPkAutoIncrement = false

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

插入数据可能不正常

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

读数据正常

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

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

参考:
CRUD Models in Magento 2

发表评论

电子邮件地址不会被公开。 必填项已用*标注