1

コントローラー アクションのいくつかの条件に基づいて、viewPath を動的に設定する必要があります。以下のように、コントローラーに getViewPath() というメソッドを配置することにより、メソッドを認識しています。

public function getViewPath() {
  $controllername = $this->getId();
  $newPath = "application.views.extra";
  $newPath = YiiBase::getPathOfAlias($newPath);
    return $newPath;
}

しかし、前に言ったように、条件に基づいて viewPath を設定する必要があります。このような:

public function actionView($section) {
   switch ($section) {
     case 'yoga':
       $viewpath = 'yoga';
     break;

      case 'cycling':
        $viewpath = 'cycling';
      break;
   }

    // Now this should render from either:
    1.  protected/views/yoga/  
    2.  protected/views/cycling/
     $this->render('view');
}

Controller クラスには getViewPath() がありますが、setViewPath() はありません。viewPath プロパティも読み取り専用です。

これについての助けに感謝します。

4

1 に答える 1

0

//レンダーパスでの使用はデフォルトでに設定されているprotected/views/ため、次のことができます。

public function actionView($section) {
   switch ($section) {
     case 'yoga':
       $viewpath = '//yoga/';
     break;

      case 'cycling':
        $viewpath = '//cycling/';
      break;
   }

    // Now this should render from either:
    //1.  protected/views/yoga/  
    //2.  protected/views/cycling/
     $this->render($viewpath.'view');
}
于 2012-11-20T08:47:31.217 に答える