در قسمت قبل اطلاعاتو با استفاده از actionCreate ثبت کردیم . حالا می خوایم با actionView آشنا بشیم که کار نمایش اطلاعات را بر عهده دارد .
public function actionView($id) { $this->render('view',array( 'model'=>$this->loadModel($id), )); }
این اکشن حتما باید یک آرگومان دریافت کنه
این آرگومان آی دی کاربر ذخیره شده در دیتابیس هست.
که اون آی دی رو به متدی با نام loadModel ارسال میکنه این متد چیکار میکنه ؟
کد زیر رو ببینید
public function loadModel($id) { $model=User::model()->findByPk($id); if($model===null) throw new CHttpException(404,'The requested page does not exist.'); return $model; }
این متد هم یه آرگومان دریافت میکنه .
$model=User::model()->findByPk($id)
این کد معادل با این کوئری هست : select * from user where id = $id
شما در فریم ورک Yii به راحتی میتوانید کوئری های خود را ازین طریق اعمال نمایید.
به این صورت که ابتدا نام مدل سپس model()-> و در آخر متد هایی که برای این اقدامات قرار داده شده است . مانند:
findByPk() که برای دسترسی به اطلاعات بر اساس کلید اصلی جدول می باشد
findAll() برای دسترسی به تمام اطلاعات جدول
, غیره که به مرور با آنها آشنا میشیم
خوب پس از اجرای کوئریه بالا چک میکنیم که آیا در جدول ما با اون آی دی اطلاعاتی پیدا شده است یا نه
اگر نتیجه null بود که پیام خطا میدهد کهThe requested page does not exist
اگر نتیجه خالی نبود اطلاعاتو بر میگردونه
برگردیم به actionView. خوب اطلاعات که فراخونی شد اونو با استفاده از متد render از طریق متغییر model به صفحه ی view میفرستیم.
خوب حالا چطوری نمایش بدیم اطلاعاتو
فایل view.php را از مسیر views ->user باز میکنیم
کد زیر
<?php /* @var $this UserController */ /* @var $model User */ $this->breadcrumbs=array( 'Users'=>array('index'), $model->id, ); $this->menu=array( array('label'=>'List User', 'url'=>array('index')), array('label'=>'Create User', 'url'=>array('create')), array('label'=>'Update User', 'url'=>array('update', 'id'=>$model->id)), array('label'=>'Delete User', 'url'=>'#' , 'linkOptions'=>array('submit'=>array('delete','id'=>$model->id), 'confirm'=>'Are you sure you want to delete this item?')), array('label'=>'Manage User', 'url'=>array('admin')), ); ?> <h1>View User #<?php echo $model->id; ?></h1> <?php $this->widget('zii.widgets.CDetailView', array( 'data'=>$model, 'attributes'=>array( 'id', 'submit_date', 'last_update', 'context', 'user_id', 'article_id', 'product_id', 'parent_id', 'ip', 'status', ), )); ?>
breadcrumb , menu رو که قبلا توضیح دادیم .
فریم ورک یی برای نمایش جزئیات ماژولی به نام cdetailview داره که به راحتی میشه اطلاعاتو نمایش بده
کافیه متد data رو با مدلی که از اکشن ارسال کردید پر کنید و تعیین کنید که کدام اتریبیوت های مدلتونو میخواین نمایش بدین.
در حالت عادی شکل زیر در مرورگر نمایش داده میشود
خوب ما می خوایم یه تغییراتی اعمال کنیم
من کدم رو با این اطلاعات ویرایش میکنم
<h1> <?php echo $model->first_name . " " . $model->last_name; ?></h1> <?php $this->widget('zii.widgets.CDetailView', array( 'data' => $model, 'attributes' => array( 'first_name', 'last_name', 'email', ), )); ?>
به همین راحتی , به همین خوش مزگی
در ادامه منتظر سایر آموزشا باشین
موفق باشین