是否有人知道如何根据字段值为用户分配不同的视图?
具体来说,我正在寻找一个函数,如果字段xyz ='user1',将为用户提供用户名'user1'视图'templateA'。如果用户用户名不是字段xyz值,则向用户显示视图“templateB”。
您建议我选择哪个方向?
的解决: 的
下面给出了控制器actionUpdate的一个工作示例,以防它帮助其他任何人。
Yii :: app() - > user-> id是指登录用户的ID。 $ model-> ownerId是此模型中引用的表的ownerId字段。
备用视图文件'update1.php'和'update2.php'位于我的protected / views / circle / swatch /文件夹中。
在我的'CircleController.php'中:
public function actionUpdate($id)
{
$model=$this->loadModel($id);
if (Yii::app()->user->id == $model->ownerId) {
$template = 'update1';
} else {
$template = 'update2';
}
if(isset($_POST['Circle']))
{
$model->attributes=$_POST['Circle'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('swatch/' . $template,array(
'model'=>$model,
));
}
答案 0 :(得分:3)
我认为你有两种可能性:
修改强>
在你的情况下:
public function actionDisplayDynamicTemplate()
{
if (Yii::app()->user->username == 'user1') {
$template = 'templateA';
} else {
$template = 'templateB';
}
$this->render('user/' . $template);
}
您需要的只是user
文件夹中名为views
的目录,其中包含templateA.php
和templateB.php
个文件。