$ the-> सेट('शीर्षक', 'शीर्षक नाम'); CakePHP 3.x में काम नहीं कर रहा है




cakephp-3.0 (2)

fetch() एक ब्लॉक की सामग्री को एक चर नहीं देता है। अपने नियंत्रक में set() का प्रयोग करके एक चर सेट किया जा रहा है जो आपके दृश्य टेम्पलेट्स में आउटपुट हो सकता है जो चर को प्रतिध्वनित करता है: -

<?php echo $title; ?>

यदि आप fetch() का उपयोग करना चाहते हैं, तो आपको ब्लॉक को परिभाषित करने के लिए इसे देखें टेम्पलेट्स में assign() साथ संयोजन में उपयोग करना होगा उदाहरण के लिए अपने दृश्य टेम्पलेट उपयोग में: -

<?php $this->assign('title', $title); ?>

और फिर लेआउट टेम्पलेट में: -

<title><?php echo $this->fetch('title'); ?></title>

केकपीएचपी 3 में यह विचार व्यू में निर्दिष्ट करके पृष्ठ शीर्षक सेट करना है क्योंकि यह पृष्ठ के रेंडरिंग से संबंधित है। यह कैसे title_for_layout पीएचपी 2 में मूल रूप से संभाला गया था, जहां से आप अपने नियंत्रक में title_for_layout को परिभाषित करते हैं और फिर लेआउट टेम्पलेट में $title_for_layout चर को प्रतिध्वनित करते हैं (इसे केक 2 के बाद के संस्करणों में $title_for_layout 3 दृष्टिकोण के पक्ष में हटा दिया गया था)।

असल में default.ctp में मुझे यह मेरे शीर्षक के लिए है:

<title>
  <?= $this->fetch('title') ?>
</title>

और नियंत्रक के अंदर मुझे यह रेखा है:

$this->set('title', 'Test-Title');

लेकिन यह कुछ नहीं करता है, यह अभी भी नियंत्रक का नाम दिखाता है (नौकरियां, नियंत्रक का पूरा नाम ओस नौकरियां)।

लेकिन अगर मैं इसे अपने दृश्य फ़ाइल के अंदर डालता हूं:

$this->assign('title', 'Test-Title');

यह शीर्षक बदलता है तो $-> सेट ('शीर्षक', $ शीर्षक) में क्या गलत है ?


बस पूरा होने के लिए, मैं एक ऐसी स्थिति में आया हूं जहां <head></head> बीच संदर्भित अपरिभाषित चर के साथ एक दोषपूर्ण। जेएस स्क्रिप्ट के परिणामस्वरूप <title></title> टैग को DOM (पृष्ठ स्रोत में दिखाया गया) पर पोस्ट किया गया, लेकिन क्रोम , फ़ायरफ़ॉक्स और (स्मृति से) MSIE सभी एपीआई यूआई में शीर्षक की सामग्री को देने में विफल रहे, फिर से स्मृति से - आईओएस मोबाइल अप्रभावित था





cakephp-3.0