Hallo zusammen,
ich versuche im Backend ein eigenes Model in der Detailansicht zu laden.
Das Formular wird angezeigt, nur das Laden der Daten will nicht funktionieren.
Ich habe ein Model:
Ext.define('Shopware.apps.MegaPayment.model.CreditCardData', {
extend: 'Shopware.data.Model',
configure: function() {
return {
controller: 'CreditCardDataController',
detail: 'Shopware.apps.MegaPayment.view.detail.CreditCardData'
};
},
fields: [
{ name : 'id', type: 'int'},
{ name : 'accountHolder', type: 'string'},
{ name : 'cardProvider', type: 'string'},
{ name : 'cardNumber', type: 'string'},
{ name : 'cvc', type: 'string'},
{ name : 'expireDateMonth', type: 'string'},
{ name : 'expireDateYear', type: 'string'},
{ name : 'order_id', type: 'int'}
]
});
und den dazugehörigen Store:
Ext.define('Shopware.apps.MegaPayment.store.CreditCardData', {
extend:'Shopware.store.Listing',
configure: function() {
return { controller: 'CreditCardDataController' };
},
model: 'Shopware.apps.MegaPayment.model.CreditCardData'
});
Wie ich jetzt die records aus dem store bekomme ist mir nicht ganz klar
/**
* Created by ollie on 03.02.17.
*/
//{block name="backend/order/view/detail/window"}
// {$smarty.block.parent}
Ext.define('Shopware.apps.MegaPayment.view.detail.Window', {
override: 'Shopware.apps.Order.view.detail.Window',
createTabPanel: function () {
var me = this;
var tabPanel = me.callParent(arguments);
var orderId = me.record.get('id');
var store = Ext.create('Shopware.apps.MegaPayment.store.CreditCardData');
var creditCardData = store.findRecord('order_id', orderId);
if(!creditCardData){
creditCardData = Ext.create('Shopware.apps.MegaPayment.model.CreditCardData');
}
var detailView =Ext.create('Shopware.apps.MegaPayment.view.detail.CreditCardData', {
record: creditCardData
});
tabPanel.add(detailView);
return tabPanel;
}
});
//{/block}
findRecors liefert mit immer null. Scheinbar funktioniert das Mapping zwischen store und BackendController nicht.
Dokumentation von Secha/Shopware und die Forernsuche haben mich an dieser stelle nicht weiter gebracht.
Gibt es Beispiele wie man mit Stores richtig arbeitet, was mach ich falsch?
hier noch der Controller:
class Shopware_Controllers_Backend_CreditCardDataController extends Shopware_Controllers_Backend_Application
{
protected $model = 'Shopware\CustomModels\MegaPayment\CreditCardData';
protected $alias = 'CreditCardData';
}
Vielen Dank
Oliver
*Edited some typos