ساخت Widget در Yii
با سلام خدمت همه دوستان عزیز،در این پست میخواهیم یک ویجکت ساده بنویسیم :
۱-در پوشه component فایلی به اسم SideWidget.php میسازیم : شامل محتویات زیر :
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ | <?php class SideWidget extends CWidget { public function run() { $comment= Comment::model()->findAll(array('limit'=>۵,'order'=>'id DESC')); $this->render('side', array( 'comments'=>$comment, )); } } |
کد بالا ۱۰ رکورد آخر مربوط به مدل Comment رو میخونه و تو یک متغیر میریزه و در هنگام render کردن view اون متغیر رو برای آن ارسال می کنه.
هر ویجکت در yii باید از کلاس CWidget ارث بری بکنه.
۲- حالا در پوشه component پوشه ای به اسم views میسازیم و درون این پوشه فایل به اسم side.php میسازیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ | <div class="panel panel-info"> <div class="panel-heading"> <h3 class="panel-title">آخرین دیدگاه ها</h3> </div> <ul class="list-group"> <?php foreach ($comments as $comment) { echo '<a href="' . Yii::app()->createUrl('post/view', array('id' => $comment->p_id)) . '" class="list-group-item">' . $comment->name .'</a>'; } ?> </ul> </div><!-- end panel --> |
در این فایل محتویات ارسال شده توسط controller را باید یک حلقه نمایش می دهیم.
حالا با استفاده از کد زیر میتوانید هرجا که خواستید از این ویجکت استفاده کنید.
۱ | <?php $this->widget('SideWidget'); ?> |
سلام
اموزش خوب و مفیدی بود
تازه با این فریم ورک اشنا شدم مفهوم ویجت هنوز یکم برام گنگه میشه یکم دقیق تر در مورد ویجت ها توضیح بدین که چیه و چه دردی میخوره؟؟
ویجت برای نمایش داینامیک مقادیر بکار میرود که این مقادیر می تونه از دیتابیس گرفته شده باشه یا برای فیلتر کردن مقادیری باشه و …
به عنوان مثال ویجت Datepicker برای نمایش تکس باکس همراه با نمایش کادر انتخاب تاریخ است نوشته شده است که هرجا بخواهیم به راحتی فراخوانی می شود، بدون تکرار در کد نویسی.
سلام ، ممنون بابت این آموزش خوب.