Я обновляю большой проект Sencha Touch 2.4 до Ext Js 6.5.3
Мой процесс до сих пор обновлял проект с помощью инструмента Sencha CMD (sencha upgrade ..). и следуя руководству в блоге Sencha: https://docs.sencha.com/extjs/6.0.2/guides/upgrades_migrations/modern_upgrade_guide.html
Пока все хорошо. Я обновил проект (используя Sencha CMD [sencha app refresh]), и проект запущен с помощью команды watch (sencha app watch).
Теперь я получаю это сообщение об ошибке на консоли (Chrome s), говоря:
hasMany ("KrokoPodo.model.Receipt") and belongsTo ("KrokoPodo.model.CashPayment") should not be used in conjunction to declare a relationship. Use only one.
Переход к двум моим моделям:
Квитанция:
hasOne:
[
{ model: 'KrokoPodo.model.Entry', reference: 'entryId' }
],
hasMany:
[
{
model: 'KrokoPodo.model.CashPayment', reference: 'receiptId',
store:
{
pageSize: null
}
},
{
model: 'KrokoPodo.model.CreditPayment', reference: 'receiptId',
store:
{
pageSize: null
}
},
]
CashPayment:
belongsTo: [
{
model: 'KrokoPodo.model.Receipt',
reference: 'receiptId'
}
],
('reference' было 'foreignKey' и было изменено из-за предупреждения консоли, что foriegnKey устарел, и правильной альтернативой является ссылка [с Ext js 6.2], надеюсь, я прав).
From читая документацию, я вижу, что в Ext Js 6.5: HasMany:
Этот класс обеспечивает создание бесключевой ассоциации Ext.data.schema.ManyToOne. Это объявление должно быть на «одном» объекте. Дополнительную информацию см. В Ext.data.schema.ManyToOne и Ext.data.schema.Association.
источник: https://docs.sencha.com/extjs/6.5.3/modern/Ext.data.schema.HasMany.html
и ownTo:
Этот класс обеспечивает создание ассоциации Ext.data.schema.ManyToOne без ключа. Это объявление должно быть на объекте "многие". Дополнительную информацию см. В Ext.data.schema.ManyToOne и Ext.data.schema.Association.
источник: https://docs.sencha.com/extjs/6.5.3/modern/Ext.data.schema.BelongsTo.html
Я не совершенно уверен, что это означает, и как выбрать между BelongsTo и HasMany? почему они вместе и как я могу убедиться, что если я удалю или изменю один, это не нарушит бизнес-логику моего проекта c?
Я пытался поискать ответы в Интернете, но ничего не нашел это помогло мне.
Спасибо.