PDA

View Full Version : نحوه ارجاع به model در قسمتهای مختلف



tux-world
جمعه 13 دی 1392, 01:17 صبح
سلام. در داخل فایلهایی مثل کنترلر و یا ویوهای مربوط به CRUD ای که میسازیم. کدی به این صورت نوشته میشه:


<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model,'name'); ?>
</div>

سوالم اینه که این model$ چطور بهش معرفی میشه که مربوط به کودوم model$ ای هستش که این جا هست؟ داخل کنترلر هم هست.

mahdi_1986
جمعه 13 دی 1392, 20:26 عصر
سلام

در بالای هر ویو که ساخته میشه، اگر دقت کنی میبینی

MMSHFE
شنبه 14 دی 1392, 01:01 صبح
توی کنترلر موقعی که یک View رو میگیم Render کنه، میتونیم بهش پارامتر هم بفرستیم. مثال:

$this->render('index', array('model'=>Posts::model()->findByPk($id)));
که در این حالت، به ازای هرکدوم از keyهای آرایه ارسال شده، توی View یک متغیر با مقدار value متناظر با همون key ساخته میشه.

tux-world
شنبه 14 دی 1392, 23:04 عصر
سلام.نه منظورم این نبود.متغیر model رو کنترلر مقدار دهی میکنه موقعی که یک ویو رندر میشه؟ موقعی که ازش اسم میبریم یعنی به مدل همون کنترلر دسترسی داریم و میخاییم ازش استفاده کنیم دیگه درسته؟درست یادم باشه تو جوملا اسم فایل مدل رو درخواست میکردیم نمیدونم

MMSHFE
شنبه 14 دی 1392, 23:34 عصر
بله اگه به کدی که گذاشتم دقت کنید، میبینید که یک آرایه داره به View ارسال میشه که یک اندیس model داره با مقدار مشخص. توی View اون مقدار توی متغیری به اسم model$ قرار میگیره (بخاطر اینکه اسم اندیسش، model بوده). مثلاً اگه موقع صدا زدن متد render اسم اندیس رو test میگذاشتیم، اینطرف توی View باید از test$ استفاده میکردیم.