1

フィールド値に応じて異なるビューをユーザーに割り当てる方法を知っている人はいますか?

具体的には、フィールド 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,
        ));
    }
4

1 に答える 1

3

あなたには2つの可能性があると思います:

  1. $this->render('/dynamic/' . $template);
  2. $this->render('/static/page', array('with-dynamic' => $variables));

編集:

あなたの場合:

public function actionDisplayDynamicTemplate()
{
    if (Yii::app()->user->username == 'user1') {
        $template = 'templateA';
    } else {
        $template = 'templateB';
    }

    $this->render('user/' . $template);
}

必要なのはuserviewsファイルtemplateA.phptemplateB.php.

于 2013-08-06T16:36:37.200 に答える