0

在 CakePHP 中,控制器的每个方法都有自己的视图,视图模板文件是方法的名称。

class DataController extends AppController 
{
  public function one()
  {
    // will render one.ctp
  }

  public function two()
  {
    // will render two.ctp
  }
}

根据 API 文档$view,控制器的一个属性指定要呈现的视图。所以我应该有能力为all.ctp控制器的所有方法指定一个默认视图文件

class DataController extends AppController 
{
  public $view = 'all';

  public function one()
  {
    // should render all.ctp
  }

  public function two()
  {
    // should render all.ctp
  }
}

然而这不起作用,CakePHP 忽略该$view属性并继续寻找与该方法同名的模板文件。

有没有办法拥有一个默认视图而不必插入$this->render('all');每个控制器的方法?

4

1 回答 1

1

Controller::setRequest()在控制器类构造函数中调用的值将被覆盖。

您可以使用控制器beforeFilter()回调来设置值:

public function beforeFilter()
{
    parent::beforeFilter();
    $this->view = 'all';
}
于 2013-10-06T14:41:56.730 回答