Невозможно проверить поле в бэкэнд-форме Shopware

Я пытаюсь проверить поле в моем файле ExtJs, отправив сообщение на мой контроллер. Все работает нормально, и я возвращаю результат. Но проблема в том, что я не могу получить me.article в коде, поскольку он показывает undefined поэтому моя логика в контроллере не возвращает результат, как ожидалось.

Любая помощь будет высоко оценен.

Примечание: это происходит только для Shopware версии 5.4.6. Он отлично работает для Shopware 5.2.

Shopware.apps.Article.view.detail.Base.prototype.createLeftElements = function() {

    var me =this, articleId = null, additionalText = null;

    console.log('article', me.article);
    if (me.article instanceof Ext.data.Model && me.article.getMainDetail().first() instanceof Ext.data.Model) {
        articleId = me.article.getMainDetail().first().get('id');
        additionalText = me.article.getMainDetail().first().get('additionalText');
    }

    me.nameField = Ext.create('Ext.form.field.Text', {
        name: 'name',
        dataIndex: 'name',
        fieldLabel: me.snippets.name,
        allowBlank: false,
        enableKeyEvents:true,
        checkChangeBuffer:700,
        labelWidth: 155,
        anchor: '100%',
        vtype:'remote',
        validationUrl: '{url controller="MyController" action="check"}',
        validationRequestParam: articleId,
        validationErrorMsg: '{s name=detail/base/number_validation}Validation Message.{/s}'
    });
    // .. some code here which is irrelevant

    return [
        me.supplierCombo,
        me.nameField,
        me.mainDetailAdditionalText,
        me.numberField,
        {
            xtype: 'checkbox',
            name: 'active',
            fieldLabel: me.snippets.active,
            inputValue: true,
            uncheckedValue:false
        },
        {
            xtype: 'checkbox',
            name: 'isConfigurator',
            fieldLabel: me.snippets.configurator.fieldLabel,
            inputValue: true,
            uncheckedValue:false
        }
    ];
};

person Community    schedule 30.08.2018    source источник


Ответы (1)


Я не настолько глубоко разбираюсь в ExtJS, но, возможно, эта проблема вызвана CSRF-защитой? Возможно, вам нужно внести свой контроллер в белый список.

https://developers.shopware.com/developers-guide/csrf-protection/#addition-to-backend-token-validation

person Rotfuchs    schedule 30.08.2018
comment
нет, я не думаю, что это проблема, потому что я вижу, что мой метод контроллера вызывается на вкладке сети. В любом случае, я нашел другой способ проверки, подключив метод сохранения непосредственно в контроллере вместо вызова моего контроллера проверки. - person ; 06.09.2018