نمایش پروژه در فریم ورک یی yii قسمت دوم
توی پست قبلی با کنترلر site آشنا شدیم. اکشن index اونم بررسی کردیم. توی این پست میخوایم سایر اکشن های کنترلر site رو بررسی کنیم.
به تصویر دقت کنین. شماره یک محل قرار گیری کنترلر هامونه
شماره دو فولدر ویو view داخلش فولدری با اسم کنترلرمون: اینجا site . داخل فولدر ظاهر اکشنامونه.
یه نگاه به کنترلرمون بندازیم :
'class'=>'CCaptchaAction', 'backColor'=>0xFFFFFF, ), // page action renders "static" pages stored under 'protected/views/site/pages' // They can be accessed via: index.php?r=site/page&view=FileName 'page'=>array( 'class'=>'CViewAction', ), ); } /** * This is the default 'index' action that is invoked * when an action is not explicitly requested by users. */ public function actionIndex() { // renders the view file 'protected/views/site/index.php' // using the default layout 'protected/views/layouts/main.php' $this->render('index'); } /** * This is the action to handle external exceptions. */ public function actionError() { if($error=Yii::app()->errorHandler->error) { if(Yii::app()->request->isAjaxRequest) echo $error['message']; else $this->render('error', $error); } } /** * Displays the contact page */ public function actionContact() { $model=new ContactForm; if(isset($_POST['ContactForm'])) { $model->attributes=$_POST['ContactForm']; if($model->validate()) { $name='=?UTF-8?B?'.base64_encode($model->name).'?='; $subject='=?UTF-8?B?'.base64_encode($model->subject).'?='; $headers="From: $name <{$model->email}>\r\n". "Reply-To: {$model->email}\r\n". "MIME-Version: 1.0\r\n". "Content-Type: text/plain; charset=UTF-8"; mail(Yii::app()->params['adminEmail'],$subject,$model->body,$headers); Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.'); $this->refresh(); } } $this->render('contact',array('model'=>$model)); } /** * Displays the login page */ public function actionLogin() { $model=new LoginForm; // if it is ajax validation request if(isset($_POST['ajax']) && $_POST['ajax']==='login-form') { echo CActiveForm::validate($model); Yii::app()->end(); } // collect user input data if(isset($_POST['LoginForm'])) { $model->attributes=$_POST['LoginForm']; // validate user input and redirect to the previous page if valid if($model->validate() && $model->login()) $this->redirect(Yii::app()->user->returnUrl); } // display the login form $this->render('login',array('model'=>$model)); } /** * Logs out the current user and redirect to homepage. */ public function actionLogout() { Yii::app()->user->logout(); $this->redirect(Yii::app()->homeUrl); } }
ما علاوه بر اکشن index ,
actionError برای مدیریت کردن خطاهامون
actionContact برای صفحه ی تماس با ما
actionLogin برای ورود به سایت
actionLogout برای خروج از سایت داریم.
actionContact چون مدل داره توی جلسات بعدی آموزش میدیم.
فعلا میخوایم مفهوم کنترلر و اکشن و ویو رو بگیم.
الان من میخوام یه اکشن ایجاد کنم و براش یه ویو بسازم و نمایش بدم.
اکشن من اسمش هست goyii کد زیر :
public function actionGoyii() { $variable = "آموزش فریم ورک یی در سایت گو یی دات ای آر"; $this->render('goyii', array('test' => $variable)); }
خوب ما یه اکشن نوشتیم به اسم goyii .
میبینین که اولش از کلمه ی action استفاده کردم و حرف اولشم بزرگ نوشتم.
خط بعد من یه متغیر ایجاد کردم به اسم : $variable که متنی داخلشه.
حالا با خط بعد : من متغییرمو با اسم testفرستادم به ویو . اسم ویوم هست goyii
توی ویو شما با استفاده testمیتونین اون متن بزرگرو دریافت کنین.
نمایش پروژه در فریم ورک یی yii قسمت دوم
قدم بعدی قرار دادن ظاهر در ویو هست.
خوب برای این اکشن کجا باید ظاهر بسازم؟
درسته توی فولدر ویو و در فولدر site
من داخل فولدر ویو و داخل فولدر site یه فایل پی اچ پی میسازم به اسم goyii.php
حالا من توی goyii.php کدهای زیرو مینویسم.:
<h1>اولین اکشن و ویوی ما </h1> <p>دریافت متغییر از طریق $test</p> <?php echo $test; ?>
خوب حالا این آدرسو توی مرورگر وارد کنید:
http://localhost:1007/index.php?r=site/goyii
نتیجه:
تبریک به تو , تبریک به من , تبریک به همه
شما ۷۰ درصد mvc رو یاد گرفتین
اولین اکشنو ویوتونم که نوشتین. دیگه چی میخواین 😀
سوالی بود در خدمتم
ایمیل کنین بهتر جواب میدم
عنوان یادتون نره : goyii