ম্যাজেন্টো 2 বিটাতে সামনের শেষে কীভাবে সেশন বার্তাগুলি প্রদর্শিত হয় show


12

আমি আমার ম্যাজেন্টো 2 মডিউলে একটি ত্রুটি বা সাফল্যের বার্তাটি দেখাতে চাই। আমি ক্লাসের নাম সহ আমার ফ্রন্ট-এন্ড কন্ট্রোলার প্রসারিত করেছি \Magento\Framework\App\Action\Action। তারপরে আমি নিম্নলিখিত কোড ব্যবহার করে ক্লায়েন্টকে হোম পৃষ্ঠায় পুনর্নির্দেশ করব

$this->messageManager->addError($SomeMessage);
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath($base_path);

সবকিছু ঠিকঠাক কাজ করে তবে এই লাইনটি ত্রুটিটি কখনই মুদ্রণ করে না

$this->messageManager->addError($SomeMessage);

আপনার কি স্টোরফ্রন্টে বা অ্যাডমিন প্যানেলে বার্তা দেখাতে হবে?
কান্দি

আমি স্টোরফ্রন্টে বার্তাগুলি দেখাতে চাই
শাহির আলী

উত্তর:


7

আমি Magento2 বিটা উত্সে বার্তা প্রদর্শন সম্পর্কিত সমস্যার মুখোমুখি হয়েছি। ডিফল্টরূপে কিছু উত্সে ত্রুটি এবং সাফল্যের বার্তা তবে কিছু ক্ষেত্রে এটি প্রদর্শিত হয় না তবে নীচের পদক্ষেপগুলি অনুসরণ করুন।

পদক্ষেপ 1: আমি দর্শ \ ক্রুড \ ব্লক \ ম্যাসেজ.এফপিতে আমার কাস্টম মডিউলে ম্যাসেজ.এফপি ফাইল তৈরি করেছি


নেমস্পেস দার্শ \ ক্রড \ ব্লক;

বর্গ বার্তা প্রসারিত \ Magento \ ফ্রেমওয়ার্ক \ দেখুন \ উপাদান \ বার্তা {

    পাবলিক ফাংশন __ কনস্ট্রাক্ট (
        \ Magento \ ফ্রেমওয়ার্ক \ দেখুন \ উপাদান lement টেমপ্লেট \ প্রসঙ্গ $ প্রসঙ্গ,
        \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ বার্তা actory কারখানা $ বার্তা কারখানা,
        \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ বার্তা \ সংগ্রহশালা $ সংগ্রহশালা,
        Age ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ বার্তা \ ম্যানেজারআইন্টারফেস $ বার্তা ম্যানেজার,       
        অ্যারে $ ডেটা = []
    ) {
        পিতা বা মাতা :: __ কনস্ট্রাক্ট (
            $ কনটেক্সট,
            $ MessageFactory,
            $ CollectionFactory,
            $ MessageManager,
            $ তথ্য
        );       
    }

    সুরক্ষিত ফাংশন _প্রিয়ালআউট ()
    {
        $ This-> addMessages ($ this-> messageManager-> getMessages (সত্য));       
        রিটার্ন প্যারেন্ট :: _ রেডিআলআউট ();
    }

}

পদক্ষেপ 2: দর্শন \ ক্রুড \ ভিউ \ অগ্রভাগ \ বিন্যাস \ crud_index_form.xML এ হ্যান্ডেলারের সাথে বার্তা ব্লক যুক্ত হয়েছে

   <referenceContainer name="page.messages">
        <block class="Darsh\Crud\Block\Message" name="darsh.crud.message" />
    </referenceContainer>

বিন্যাস হ্যান্ডেলের জন্য দয়া করে ট্যাগ <> খোলার এবং ক্লোজিং যুক্ত করুন।

এখন আপনি দর্শন ক্রুড \ কন্ট্রোলার \ সূচক \ ফর্মটিতে আপনার কাস্টম বার্তা যুক্ত দেখতে পারেন।

আপনি যদি কোনও সমস্যার মুখোমুখি হন তবে দয়া করে https://github.com/D દર્શનmodi1427/Magento2_Crud_Operation.git- তে উদাহরণ মডিউলটি দেখুন


কিছু সংশোধন করার পরে আমি ফলাফল পেয়েছি :)
শাহির আলী

7

বিন্যাস ফাইলটিতে আমি নীচের কোডটি ব্যবহার করেছি। এখন আমি সামনের দিকে বার্তা পেয়েছি।

<referenceContainer name="page.messages">            
    <block class="Magento\Framework\View\Element\Template" name="ajax.message.placeholder" template="Magento_Theme::html/messages.phtml"/>
    <block class="Magento\Framework\View\Element\Messages" name="messages" as="messages" template="Magento_Theme::messages.phtml"/>
</referenceContainer>


1
ধন্যবাদ @ নবীন। আমার কাস্টম মডিউলে ম্যাজেন্টো 2 তে সূক্ষ্মভাবে কাজ করে
অঙ্কিত শাহ

6

আমি একই সমস্যার মুখোমুখি হয়েছি এবং আমার লেআউট ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করে আমি এটি ঠিক করতে সক্ষম হয়েছি:

<body>
    <!-- your layout content -->
    <referenceContainer name="page.messages">
        <block class="Magento\Framework\View\Element\Messages" name="messages" as="messages"/>
    </referenceContainer>
</body>

এটি এটি ঠিক করা উচিত;)


2

আপনি কি কোডের শেষ লাইনটি ফিরিয়ে দেওয়ার চেষ্টা করেছেন?

return $resultRedirect->setPath($base_path);

ভেরিয়েবলটি খালি addErrorনা হলে আসল ফাংশনটি দুর্দান্ত দেখায় $SomeMessage, আপনি কি এটিও পরীক্ষা করে দেখেছেন ?

যদি এটি ব্যর্থ হয় তবে আপনি এর _redirectপরিবর্তে ফাংশনটি ব্যবহার করে পুনঃনির্দেশের চেষ্টা করতে পারেন:

$this->_redirect('*/*/');

সম্ভবত resultRedirectফাংশন বার্তা সেশনটি সাফ করে দেয় যাতে আপনার বার্তাটি কখনই প্রদর্শিত হয় না।


2

হ্যাঁ, আমি $ ফলাফলের সাথে প্রত্যক্ষিত বস্তুটি ব্যবহার করে বার্তা যুক্ত করেছি

$ ResultRedirect-> setUrl ($ এই ->: _ পুনর্নির্দেশ ( 'টি ককটেলের / সূচক / ফর্ম'));

নীচে নিয়ামক কোড দেখুন

নেমস্পেস দার্শ \ ক্রড \ কন্ট্রোলার \ সূচক;

ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ অ্যাপ্লিকেশন \ ফাইল সিস্টেম \ ডিরেক্টরীলিস্ট ব্যবহার করুন;

ক্লাস পোস্ট প্রসারিত \ Magento \ যোগাযোগ \ নিয়ামক \ সূচক ex
// ক্লাস পোস্টটি প্রসারিত \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ অ্যাপ \ ক্রিয়া \ ক্রিয়া {


    পাবলিক ফাংশন এক্সিকিউট () {
        $ ডেটা = $ এটি-> getRequest () -> getPostValue ();

        যদি (! $ ডেটা) {
            এই $ ->: _ পুনর্নির্দেশ ( 'টি ককটেলের / সূচক / ফর্ম');
            আসতে;
        }

        $ রেজাল্ট ডাইরেক্ট = $ এটি-> ফলাফলআরডাইরেক্টফ্যাক্টরি -> তৈরি করুন ();
        চেষ্টা করুন
            $ মডেল = $ এটি -> _ অবজেক্ট ম্যানেজার-> তৈরি করুন ('দর্শ \ ক্রুড \ মডেল \ ক্রুড');
            যদি (আইসেট ($ _ ফাইলগুলি ['চিত্র'] ['নাম']]) && $ _ ফাইলগুলি ['চিত্র'] ['নাম']! = '') {
                চেষ্টা করুন
                    $ আপলোডার = $ এটি -> _ অবজেক্ট ম্যানেজার-> তৈরি করুন ('\ ম্যাজেন্টো \ মিডিয়াস্টোরেজ \ মডেল \ ফাইল \ আপলোডার', অ্যারে ('ফাইলআইডি' => 'চিত্র'));
                    $ আপলোডার-> সেটএলওয়েড এক্সটেনশনস (অ্যারে ('জেপিজি', 'জেপিগ', 'জিআইএফ', 'পিএনজি'));
                    $ Uploader-> setAllowRenameFiles (সত্য);
                    $ Uploader-> setFilesDispersion (সত্য);
                    $ মিডিয়াডাইরেক্টরি = $ এটি -> _ অবজেক্ট ম্যানেজার-> পান ('ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ ফাইল সিস্টেম')
                            -> getDirectoryRead (DirectoryList :: মিডিয়া);
                    $ কনফিগারেশন = $ এটি -> _ অবজেক্ট ম্যানেজার-> পান ('দর্শন \ ক্রুড \ মডেল \ ক্রুড');
                    $ ফলাফল = $ আপলোডার-> সংরক্ষণ করুন ($ মিডিয়াডাইরেক্টরি-> getAbsolvePath ('ব্যানারস্লাইডার / চিত্রসমূহ'));
                    সেট না ($ ফলাফলের [ 'tmp_name']);
                    সেট না ($ ফলাফলের [ 'পথ']);
                    $ ডেটা ['চিত্র'] = $ ফলাফল ['ফাইল'];
                } ধরা (ব্যতিক্রম $ ই) {
                    $ ডেটা ['চিত্র'] = $ _FILES ['চিত্র'] ['নাম'];
                }
            } অন্যথায় যদি (আইসেট ($ ডেটা ['চিত্র'] ['মুছুন']])) {
                $ ডেটা ['চিত্র'] = '';
            } অন্যথায় যদি (আইসেট ($ ডেটা ['চিত্র'] ['মান'])) {
                $ ডেটা ['চিত্র'] = $ ডেটা ['চিত্র'] ['মান'];
            }

            $ Model-> setData ($ তথ্য);
            $ Model-> setStoreId ($ this-> storeManager-> getStore () -> getId ())
                        -> setStores ([$ this-> storeManager-> getStore () -> getId ()])
                        -> Save ();
            চেষ্টা করুন
                $ Model-> সংরক্ষণ করুন ();
                $ This-> messageManager-> addSuccess (
                        __ ('আপনার মন্তব্য এবং প্রশ্নের সাথে আমাদের সাথে যোগাযোগ করার জন্য ধন্যবাদ। আমরা আপনাকে খুব শীঘ্রই প্রতিক্রিয়া জানাব।')
                );
                // $ এই ->: _ পুনর্নির্দেশ ( 'টি ককটেলের / সূচক / ফর্ম');
                // দেশে ফেরত পাঠানো;
            } ধরা (\ ব্যতিক্রম $ ই) {
                $ This-> messageManager-> addError (
                        __ ('আমরা এখনই আপনার অনুরোধটি প্রক্রিয়াকরণ করতে পারি না Sorry দুঃখিত, আমরা এগুলি জানি' '));
                // $ এই ->: _ পুনর্নির্দেশ ( 'টি ককটেলের / সূচক / ফর্ম');
                // দেশে ফেরত পাঠানো;
            }
        } ধরা (\ ব্যতিক্রম $ ই) {
            $ This-> messageManager-> addError (
                    __ ('আমরা এখনই আপনার অনুরোধটি প্রক্রিয়াকরণ করতে পারি না Sorry দুঃখিত, আমরা এগুলি জানি' '
            );
            // $ এই ->: _ পুনর্নির্দেশ ( 'টি ককটেলের / সূচক / ফর্ম');
            // দেশে ফেরত পাঠানো;
        }

        $ ResultRedirect-> setUrl ($ এই ->: _ পুনর্নির্দেশ ( 'টি ককটেলের / সূচক / ফর্ম'));

        প্রত্যাবর্তন
    }

}

ধন্যবাদ।


2

এক্সডিবিউজি ব্যবহার করে দেখুন, আপনার নিয়ামক ক্রিয়ায় ব্রেক পয়েন্ট সেট করুন। হতে পারে এটি ডুপ্লিকেটটি পুনঃনির্দেশিত হয়েছিল এবং ম্যানেজারে হারিয়ে যাওয়া বার্তা তৈরি করেছিল।

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