رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فرستادن مقادیر اضافی به لی اوت
#1
Wink 
سلام خدمت همه دوستان...

به طور پیشفرض وقتی با متد render یه ویویی رو فراخوانی می کنیم ، کدهایی که توی اون فایل ویو قرار دادیم به لی اوت ارسال می شه و به جای <? content$ =?> قرار می گیره...

حالا سوالم اینه..اگه بخوایم مقادیر بیش تری به لی اوت بفرستیم باید چیکار کنیم؟؟

مثلا من می خوام توی یه صفحه یه کد جاوااسکریپت خاص رو داخل هدر قرار بدم و در صفحات دیگه نمی خوام باشه..
چطور می تونم این کار رو بکنم؟؟(البته روش معمولیش رو بلدم...کد رو داخل تگ اسکریپت قرار می دی و توی همون فایل ویو ارسال می کنی...اما من می خوام بره داخل هدر قرار بگیره)

یعنی می شه یه چیزی مثل <? content$ =?> داخل هدر تعریف کرد و بعد بهش مقدار داد ؟؟

پیشاپیش ممنون دوستانی که بنده رو راهنمایی بفرمایند. Heart Heart
پاسخ
تشکر شده توسط:
#2
برای هر کاری راهکارش وجود داره. برای مثال اگه میخواین توی یه ویوی خاص، یه کد JS رو توی بخش HEAD لی‌اوت قرار بدین، باید اینطوری بنویسید:

<?= $this->registerJs('JS CODE', View::POS_HEAD, 'script_key') ?>

ضمناً میتونید از آرایه params هم استفاده کنید. برای مثال:
$this->params['js'] = 'JS CODE';

و بعد داخل لی‌اوت اینطوری بنویسید:
if(isset($this->params['js'])) { echo '<script type="text/javascript">' . $this->params['js'] . '</script>'; }

که البته روش اول بیشتر توصیه میشه.

ضمناً اگه توی کنترلر خواستین به عناصر ویو دسترسی داشته باشین باید با $this->view کار کنید. مثال:
$this->view->params['js'] = 'JS CODE';

بطور عکس، توی ویو برای دسترسی به کنترلر باید از $this->context استفاده کنید.
پاسخ
تشکر شده توسط: mojtabasln , megahamed22




کاربران در حال بازدید این موضوع: 2 مهمان