ম্যাজেন্টো 2 কাস্টম মডিউল দ্বারা যুক্ত বৈশিষ্ট্যগুলি আনইনস্টল করবেন কীভাবে?


11

আমি এখনও অবধি জানি যে কোনও কাস্টম মডিউল আনইনস্টল করার সময় কাস্টম মডিউল দ্বারা যুক্ত কাস্টম টেবিল বা কলামগুলি uninstall.phpপ্রসারিত করে তা সরিয়ে ফেলা সম্ভব \Magento\Framework\Setup\UninstallInterface। তবে InstallData.phpমডিউল আনইনস্টল করার সময় যুক্ত করা কাস্টম বৈশিষ্ট্যগুলি কীভাবে সরিয়ে ফেলা যায় ? আগাম ধন্যবাদ!


এইভাবে অনুসরণ করুন: magento.stackexchange.com/questions/78221/…
আব্দুল

@ আবদুল আমি এই পোস্টটি আগে পড়েছি। তবে এতে বৈশিষ্ট্যগুলি অপসারণের পদ্ধতিটি উল্লেখ করা হয়নি।
রিকি.সি

আপনি একটি নির্দিষ্ট সারণীতে মান বলতে চান?
ম্যাডি

উত্তর:


13

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

<?php

namespace Company\Modulename\Setup {

    class Uninstall implements \Magento\Framework\Setup\UninstallInterface
    {

        protected $eavSetupFactory;

        public function __construct(\Magento\Eav\Setup\EavSetupFactory $eavSetupFactory)
        {
            $this->eavSetupFactory = $eavSetupFactory;
        }



        public function uninstall(\Magento\Framework\Setup\SchemaSetupInterface $setup, \Magento\Framework\Setup\ModuleContextInterface $context)
        {
            $setup->startSetup();

            $eavSetup = $this->eavSetupFactory->create();

            $entityTypeId = 1; // Find these in the eav_entity_type table
            $eavSetup->removeAttribute($entityTypeId, 'attribute_code');

            $setup->endSetup();

        }
    }

}

অতিরিক্তভাবে, এই পদ্ধতিটি ব্যবহারের ফলে এভ বৈশিষ্ট্যটি সমস্ত টেবিল থেকে নিজেকে যথাযথভাবে সরিয়ে ফেলবে, যেহেতু তারা সীমাবদ্ধতাগুলি ব্যবহার করে লিঙ্কযুক্ত।

বিটিডাব্লু, আমি পিএইচপিএসটর্ম + এক্সডিবাগ ব্যবহার করার পরামর্শ দিচ্ছি। এই সমস্ত জিনিস কীভাবে একত্রিত হয় সে সম্পর্কে আপনি আরও অনেক কিছু শিখবেন।


এটি কোন ফাইল এবং কোথায় যায়?
চিহ্নিত করুন

এর আনইনস্টল.এফপি। এটি মডিউল সেটআপ ফোল্ডারে যায়। নেমস্পেসটি পরীক্ষা করে দেখুন। এটি সর্বদা পথের নামের সাথে মেলে।
কারকম্প

1
এছাড়াও আপনি ব্যবহার করতে পারেন Customer::ENTITYবা Product::ENTITYইত্যাদি পরিবর্তে 1 বা 4। ( use Magento\Catalog\Model\Product; use Magento\Customer\Model\Customer;)
জোনিস এলমারিস

2

আপনি \Magento\Eav\Api\AttributeRepositoryInterface::deleteএই জন্য ব্যবহার করতে পারেন ।


সত্য, তবে এর দ্বারা বোঝানো হয়েছে যে তিনি একটি কাস্টম মডিউল তৈরি করছেন, সুতরাং এর অর্থ এটি সৃষ্টি এবং মুছে ফেলার পদ্ধতিটি প্রোগ্রামেটিক বলে ধরে নেওয়া হচ্ছে। এপিআই ব্যবহার করা কিছুটা ভুল পদ্ধতি, তবে, আপনি অ্যাট্রিবিউটরপোসিটোরি ইন্টারফেস থেকে শ্রেণি এবং পদ্ধতিগুলি যা বাস্তবে কাজ করে তার পথে ব্যাকট্র্যাক করতে পারেন
কারকম্প

1
@ কারকম্প, এপিআই ব্যবহার করা কেবলমাত্র একটি সঠিক পদ্ধতি, যদি আপনি ম্যাজেন্টোর নতুন সংস্করণে আপনার মডিউলটির কাজ করতে আগ্রহী হন। ম্যাজেন্টো বিসি নীতিটি কেবল এপিআইয়ের জন্য ব্যবহার করে। এবং প্রাইভেট বাস্তবায়ন কোনও বিজ্ঞপ্তি ছাড়াই যে কোনও সময় পরিবর্তিত হতে পারে
কান্দি

আমি যা লিখেছি তা আবার পড়েছি আমি এটি সবার পক্ষে ভুল দৃষ্টিভঙ্গি বলছি না, আমি কেবল তার প্রশ্নের সাথে বোঝাতে চাইছি। তিনি জিজ্ঞাসা করছিলেন কীভাবে এটি পিএইচপি করতে হবে।
কারকম্প

1
এপিআই - এটি ওয়েব এপিআই নয়, @ এপি টীকাতে ইন্টারফেস করে। দুঃখিত যদি আমি কিছু
অল্পমাত্র

1

1 এবং 2 এর মতো সত্তা আইডির পরিবর্তে ম্যাজেন্টো \ গ্রাহক \ মডেল \ গ্রাহক শ্রেণি ব্যবহার করুন।

<?php
namespace Custom\Module\Setup;

use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Customer\Model\Customer;

class InstallData implements InstallDataInterface
{
private $eavSetupFactory;

public function __construct(EavSetupFactory $eavSetupFactory) 
{
 $this->eavSetupFactory = $eavSetupFactory;
}

 public function install(ModuleDataSetupInterface $setup, ModuleContextInterface 
  $context)
   {
    $setup->startSetup();

   $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
   $eavSetup->removeAttribute(Customer::ENTITY, 'attribute_code_here');

  $setup->endSetup();
  }
}

শুভ কোডিং !!


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