কন্ট্রোলার ম্যাজেন্টো 2 তে সমস্ত বাচ্চাদের ব্লক পাবেন কীভাবে?


11

প্যারেন্ট ব্লকের নাম বা লেআউট ম্যাজেন্টো 2 ব্যবহার করে আমাকে সমস্ত বাচ্চাকে নিয়ন্ত্রক হিসাবে ব্লক করতে হবে।

অগ্রিম ধন্যবাদ.

উত্তর:


7

নিশ্চিত করুন যে আপনার নিয়ামকটি একই, যা আপনার ব্লক এবং তার শিশুদের ব্লকগুলি প্রস্থান করে এমন বিন্যাসটি লোড করে।

ম্যাজেন্টো \ ব্যাকএন্ড \ অ্যাপ \ ক্রিয়া \ প্রসঙ্গ ব্যবহার করুন;
ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ দেখুন ult ফলাফল \ পেজ ফ্যাক্টরি ব্যবহার করুন;

শ্রেণি সম্পাদনা \ ম্যাজেন্টো \ ব্যাকএন্ড \ অ্যাপ \ ক্রিয়া প্রসারিত করে
{
  সুরক্ষিত $ ফলাফলপেজফ্যাক্টরি;

  পাবলিক ফাংশন __ কনস্ট্রাক্ট (
       প্রসঙ্গ $ প্রসঙ্গ,
       পেজফ্যাক্টরি $ রেজাল্টপেজফ্যাক্টরি
  ) {
       $ এটি-> ফলাফলপেজফ্যাক্টরি = $ ফলাফলপেজফ্যাক্টরি;
       পিতা বা মাতা :: __ কনস্ট্রাক্ট ($ প্রসঙ্গ);
  }

  $ ফলাফলপেজ = $ এটি-> ফলাফলপেজফ্যাক্টরি-> তৈরি ();

  ; blockInstance = $ রেজাল্টপেজ-> getLayout () -> getBlock ('your. block.name');

  $ চাইল্ডব্লকস = $ blockInstance-> getChildNames ();

  foreach ($ blockName হিসাবে চাইল্ড ব্লকস) {
    $ block = $ রেজাল্ট পেজ-> getLayout () -> getBlock ($ blockName);
  }

}

1
সরস সুন্দর উত্তর।
— রাকেশ জেসাদিয়া

এটি আমার জন্য ভাল কাজ করছে ধন্যবাদ @ অমিত সিং
— ধর্মেন্দ্র যাদব

@ অমিতসিংহ, দয়া করে ব্যাখ্যা করুন, $blockInstance->getChildNames();এখানে getChildNames () এর অর্থ?
— পায়েল প্যাটেল

0

আপনি এই জাতীয় সমস্ত শিশু ব্লক পেতে পারেন।

$allblocks = $block->getChildNames();

  foreach($allblocks as $blocks){
    $child_block = $this->resultPageFactory->create()->getLayout()->getBlock($blocks);
  }

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