আমি কীভাবে ম্যাজেন্টো 2 এ বিদ্যমান মডেলটি পরিবর্তন করতে পারি?


36

আমি ম্যাজেন্টো ২-তে একটি মডেলের (মডেল নয়) আচরণটি পরিবর্তন করার চেষ্টা করছি
question প্রশ্নের মধ্যে মডেলটি হ'ল advanced_inventory_modalঘোষণা করা module-catalog-inventory/view/adminhtml/ui_component/product_form.xml

এখন আমি জানি যে আমি পণ্য-ফর্ম-সংশোধক-পুলে একটি পরিবর্তনকারী ব্যবহার করতে পারি:

<virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool">
    <arguments>
        <argument name="modifiers" xsi:type="array">
            <item name="hf_quantity" xsi:type="array">
                <item name="class" xsi:type="string">Vendor\Module\Ui\DataProvider\Product\Form\Modifier\Quantity</item>
                <item name="sortOrder" xsi:type="number">100</item>
            </item>
        </argument>
    </arguments>
</virtualType>

... এবং modifyMeta()এক্সএমএল কনফিগারেশনটি পরিচালনা করতে আমার মডিফায়ারে-অর্থসূচকটি ব্যবহার করুন , তবে কিছু কারণে, ইনভেনটরি মডেলটি এখানে সরবরাহ করা ডেটাতে উপস্থিত নেই।sortOrderআমি ইতিমধ্যে সেভাবে উঁচুতে স্থাপন করার কারণে এটি কোনও সম্পর্কিত সম্পর্কিত সমস্যাও নয় ।sortOrder-Attribute এটা দিয়ে কি কিছু থাকতে পারে।

তাহলে কি দেয়? কেউ কি আমাকে বলতে পারবেন যে ম্যাজেন্টো 2 তে বিদ্যমান মডেলের সামগ্রীটি সংশোধন করার উপযুক্ত উপায় কী?

সম্পাদনা:

আমি কী অর্জন করতে চাইছি তা কীভাবে অর্জন করতে হবে সে সম্পর্কে আমি একটি সমাধান বা কার্যকারিতা খুঁজে পেয়েছি (এখনও নিশ্চিত নয়)। দেখা যাচ্ছে যে আমি যদি 10000 সেট করে sortOrderরাখি তবে আমার নিজস্ব পদ্ধতিতে আমি ব্যবহার করতে পারি এমন কিছু ডেটা রয়েছে :modifyMeta()

public function modifyMeta(array $meta)
{
    if ($path = $this->arrayManager->findPath('quantity_and_stock_status_qty', $meta, null, 'children')) {
        $this->arrayManager->remove(
            $path . '/children/qty/arguments/data/config/validation/validate-digits',
            $meta
        );
    }

    if ($path = $this->arrayManager->findPath('advanced_inventory_modal', $meta)) {
        $meta = $this->arrayManager->merge(
            $path . '/children/stock_data/children/qty/arguments/data/config',
            $meta,
            ['validation' => ['validate-digits' => false]]
        );
    }

    return $meta;
}

Note that the `advanced_inventory_modal` node is not yet complete, but my best guess is that the later addition of the modal merges with these settings, but doesn't override it. Could be wrong though, perhaps someone could share some more light on how this mechanism works?

1
এই ধরণের ইউআই উপাদানটি কাস্টমাইজ করার একমাত্র উপায়। পিএইচপি সংশোধক।
তোয়ান এনগুইন

2
@ জিল বার্কার্স আপনার প্রশ্নটি ভাল তবে দুর্ভাগ্যক্রমে আমি এর উত্তর কীভাবে জানি না। ভাগ্যক্রমে আমার প্রশ্নের যথেষ্ট পরিমাণে নাম আছে আপনার প্রশ্নের উপর অনুদান রাখার জন্য যারা আপনার প্রশ্নের উত্তর দিতে জানে তাকে আকৃষ্ট করতে। আমার মত
বিদায় স্ট্যাক এক্সচেঞ্জ

উত্তর:


1

দুটি উপায় আছে:
1. একটি নতুন মডেল তৈরি করুন (স্থানীয় পুলে নতুন মডিউল তৈরির মাধ্যমে)
২. আপনি যে নির্দিষ্ট মডিউলটি চান তার বিদ্যমান মডেলটিকে ওভাররাইড করতে।


0

আপনি সেট করতে পারেন <sequence>মধ্যে module.xml এর CatalogInventory মডিউল। এর পরে, আপনি product_for.xML এর অধীনে তৈরি করতে পারেন

অ্যাপ্লিকেশন / কোড / আপনার / মডিউল / ভিউ / অ্যাডমিনটিচটিএমএল / লুই / কম্পোনেন্ট / প্রোডাক্ট_ফর্ম.এক্সএমএল

ক্যাটালগ তালিকাভুক্তিতে যেমন রয়েছে তেমনি পথও । এটি আপনার প্রয়োজনীয় কনফিগারেশনটি প্রতিস্থাপন করবে।

আমি কোনও উদাহরণ সরবরাহ করতে চাই তবে এখানে আপনার কী প্রয়োজন তা আমি জানি না। পিএস আপনাকে আপনার এক্সএমএলে অন্য উপাদান যুক্ত করার দরকার নেই । সেগুলি প্যারেন্ট এক্সএমএল কনফিগারেশন থেকে নেওয়া হবে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.