我有一个处于手动保存模式的模型和一个处于 create 模式的表单。一旦我添加了详细信息并单击提交,就应该创建记录并 发出类似“您的请求已注册id = 7”之类的警报,其中id是id(主键)。
请注意,主键是自动递增的,并且是动态生成的。
在手动保存模式下,我正在使用 saveChanges 保存记录,但看到错误:
严重:记录RecordKey {key = private $ 2,型号 key = 1ymdoCYoHKEGpumlXveKKZh_57jUjd9OY | 7LyXBUY46K9Jl6GRCy1DeL32kXmnGHis} 已删除。失败:对象的getProperty。 (UserCreationRequest:12:37)在createUCR(UserCreationRequest:11:19) 在 UserCreationRequest.Container.UserCreationRequestPanel.UserCreationRequestPanelFooter.UserCreationRequestPanelSubmitButton.onClick:1:1
(错误12:37指向记录。_key)
代码:(已执行OnClick提交按钮)
widget.datasource.saveChanges(function(record) {
alert('Your request is registered with id='+record._key);
}
有人可以建议在手动模式下保存时如何获取主键吗?
其他信息参考:
上面的代码在其他地方为其他模型提供了帮助。但是不适用于当前模型,是因为当前模型具有关系吗?
我在当前模型的“数据源”部分添加了一个新的数据源 并通过使用它的工作正常。但是为什么不能与原始版本配合使用?
也仅供参考,this是一个类似的问题,但由于它是另一种方法而没有帮助。我热衷于使用小部件本身进行保存。
答案 0 :(得分:0)
首先,我们需要了解创建模式与普通模式不同。明确说明后,我们可以执行以下操作:
假设数据源名称为MYDATASOURCE,则表单数据源应为MYDATASOURCE(create)。然后,在插入表单内的提交按钮小部件的 onClick 事件中,使用以下命令:
widget.datasource.createItem(function(record){
app.datasources.MYDATASOURCE.saveChanges(function(){
console.log(record._key);
});
});