我正在为Yii项目实现一个模板。该网站有不同的首页和内页模板。
我知道我必须更改布局文件,但是如何为页面设置不同的模板?
答案 0 :(得分:6)
您可以在控制器中执行此操作。例如,我的网站看起来相同,除了几页。其中一个是登录页面。在SiteController中,我已经像这样声明了actionLogin:
/**
* Displays the login page
*/
public function actionLogin()
{
$this->layout = '//layouts/simple';
$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);
$this->redirect(array('/'));
}
// display the login form
$this->render('login',array('model'=>$model));
}
行$ this-> layout ='// layouts / simple';使用简单布局覆盖默认布局(主要)。如果不同的控制器使用不同的布局,您还可以通过在控制器中声明变量
来使其成为控制器范围的变化public $layout='//layouts/column2';