微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Shopware 6:如何获取自定义模块中的所有属性

如何解决Shopware 6:如何获取自定义模块中的所有属性

我有一个自定义模块,我需要在此模块中以多选方式获取属性列表。

shopware 6 怎么可能?

我确实尝试过下面的代码,但我无法理解。

custom/plugins/CustomProduct/src/Resources/app/administration/src/module/custom-product/page/custom-product-detail/custom-product-detail.html.twig

  Future<bool> get isConnectedToInternet async {
    final ConnectivityResult connectivityResult =
        await Connectivity().checkConnectivity();

    return connectivityResult == ConnectivityResult.wifi ||
        connectivityResult == ConnectivityResult.mobile;
  }

custom/plugins/CustomProduct/src/Resources/app/administration/src/module/custom-product/page/custom-product-detail/index.js

{% block custom_product_detail %}
    <sw-page class="custom-product-detail">
        <template slot="smart-bar-actions">
            <sw-button
                :disabled="isLoading"
                :routerLink="{ name: 'custom.product.list' }">
                {{ $t('custom-product.detail.actions.cancel-button') }}
            </sw-button>

            <sw-button-process
                :isLoading="isLoading"
                custom="primary"
                @process-finish="saveFinish"
                @click="onClickSave">
                {{ $t('custom-product.detail.actions.save-button') }}
            </sw-button-process>
        </template>

        <template slot="content">
            <sw-card-view>
                <sw-card
                    v-if="module"
                    :isLoading="isLoading"
                    class="information-card">
                    
                    <sw-entity-multi-select
                        :label="$t('custom-product.detail.assignPropertyLabel')"
                        v-model="module.propertyGroupTranslation">
                    </sw-entity-multi-select>

                </sw-card>
            </sw-card-view>
        </template>
    </sw-page>
{% endblock %}

解决方法

我得到了解决方案。

custom/plugins/CustomProduct/src/Resources/app/administration/src/module/custom-product/page/custom-product-detail/custom-product-detail.html.twig

<sw-entity-multi-select
    :label="$t('custom-product.detail.assignPropertyLabel')"
    v-model="module.propertyGroupTranslation">
</sw-entity-multi-select>

替换为

<sw-multi-select
    v-if="customProduct"
    :label="$t('custom-product.detail.assign-property-group-options')"
    :options="propertyOpt"
    labelProperty="translated.name"
    valueProperty="id">
</sw-multi-select>

custom/plugins/CustomProduct/src/Resources/app/administration/src/module/custom-product/page/custom-product-detail/index.js

import template from './custom-product-detail.html.twig';

const { Component,Mixin } = Shopware;
const { Criteria } = Shopware.Data;

Component.register('custom-product-detail',{
    template,inject: [
        'repositoryFactory'
    ],mixins: [
        Mixin.getByName('notification')
    ],metaInfo() {
        return {
            title: this.$createTitle()
        };
    },data() {
        return {
            customProductId: undefined,customProduct: {},isLoading: false,processSuccess: false,propertyOpt: [],};
    },created() {
        this.createdComponent();

    },computed: {
        propertyOptionCriteria() {
            const criteria = new Criteria();

            criteria.addAssociation('group');

            return criteria;
        },customRepository() {
            return this.repositoryFactory.create('custom_product');
        },propertyOptionRepository() {
            return this.repositoryFactory.create('property_group_option');
        },},methods: {
        getModule() {
            this.customRepository.get(this.$route.params.id,Shopware.Context.api).then((entity) => {
                this.customProduct = entity;
                this.isLoading = false;
            });
        },createdComponent() {
            this.isLoading = true;

            if (this.$route.params.id && this.customProduct.isLoading !== true) {
                this.customProductId = this.$route.params.id;
                this.loadPropertyOption();
            }

            this.isLoading = false;
        },loadPropertyOption() {
            return this.propertyOptionRepository.search(this.propertyOptionCriteria,Shopware.Context.api)
                .then((propertyOption) => {
                    this.propertyOpt = propertyOption;
                });
        },}
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。