কন্ট্রোলার ম্যাজেন্টো 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.