【问题标题】:How to implement a default view in CakePHP?如何在 CakePHP 中实现默认视图?
【发布时间】:2013-10-06 14:03:43
【问题描述】:

在 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 属性并继续寻找与方法同名的模板文件。

有没有办法不用在每个Controller的方法中插入$this->render('all');就可以拥有默认视图?

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    该值将在 Controller::setRequest() 中被覆盖,该值在控制器类 constructor 中被调用。

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

    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->view = 'all';
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 2015-03-04
      • 2016-06-29
      • 2015-10-18
      相关资源
      最近更新 更多