我通过定义模型(到目前为止只有一个实体/模型)提供了元数据:
function init(store){
addSerieType(store);
}
function addSerieType(store){
store.addEntityType({
shortName: "Serie",
namespace: "xxx",
defaultResourceName: "Serien",
//autoGeneratedKeyType: breeze.AutoGeneratedKeyType.Identity,
dataProperties:{
id: { dataType: breeze.DataType.Int32, isNullable: false, isPartOfKey: true },
kat: { dataType: breeze.DataType.Int32, isNullable: false },
bez: { dataType: breeze.DataType.String, maxLength: 64, isNullable: false,
validators: [ breeze.Validator.required(), breeze.Validator.maxLength( {maxLength: 64})] // Add client-side validation to 'title'
},
jahr: { dataType: breeze.DataType.Int32, isNullable: false },
grp: { dataType: breeze.DataType.Int32, isNullable: false },
bem: { dataType: breeze.DataType.String, maxLength: 1024, isNullable: false,
validators: [ breeze.Validator.maxLength( {maxLength: 1024})] // Add client-side validation to 'title'
}
}
});
store.setEntityTypeForResourceName("Serien", "Serie");
store.registerEntityTypeCtor("Serie", null, serieInitializer);
}
function serieInitializer(serie){
serie.errorMessage = ko.observable();
}
return{
init: init
}
从PHP / Doctrine返回的JSON包括$id="Serie.id"
列(例如1,2,3 ...)和$type="Serie"
。所有列和属性名称均为小写,NamingConvention设置为none。我得到一个空实体 - 提供默认值。
对于测试,我创建了一个像这样的新实体:
var s = manager.createEntity("Serie", { id: 42, bez: "Test1", jahr: 2999} );
这是有效的,我在实体中得到ko.observable
属性,实体被实现到缓存。
为什么我从JSON结果中获取实体?我已将服务器元数据设置为false,提供模型,一切都匹配,但......实体为空。完全没有错误。任何提示?感谢。
答案 0 :(得分:0)
您的查询是什么样的? Breeze需要知道为任何查询返回的EntityType,这可以通过以下任何来完成:
Breeze无法将查询结果映射到实体类型的标准症状是结果不会变为“observables”。如果Breeze无法确定任何返回结果的EntityType,则只需将它们保留为“原生”json格式。
答案 1 :(得分:0)
请查看this similar StackOverflow question我将引导您完成诊断。提出该问题的人也在使用PHP服务器。
答案 2 :(得分:0)
(这可能对任何人都有帮助)
如果您正在使用Doctrine 2(PHP)和breeze js,您可以尝试使用此库:https://github.com/adrotec/breeze.server.php