CakePHP :为什么他们使用带有第一个括号的className()?

我使用了 cakephp 方法来更改布局。这里看起来像

$this->viewBuilder()->setLayout('admin');

我见过viewBuilder类,他们没有使用任何构造。那么对于调用方法,为什么我需要使用类名,如.起初我以为这是一个嵌套方法,但事实并非如此。setLayoutviewBuilder()


茅侃侃
浏览 98回答 1
1回答

小怪兽爱吃肉

查看 cake.org 的API,您可以看到方法(不是类)是在 trait ViewVarsTrait 中定义的,并返回一个对象(即获取正在使用的视图生成器)。viewBuilder()ViewBuilder此对象有权访问方法 。ViewBuildersetLayout()这就是您使用以下内容的原因:$this->viewBuilder()->setLayout('admin');来自 cakephp.org 26: trait ViewVarsTrait 27: {     .../** 52:      * Get the view builder being used. 53:      * 54:      * @return \Cake\View\ViewBuilder 55:      */ 56:     public function viewBuilder() 57:     { 58:         if (!isset($this->_viewBuilder)) { 59:             $this->_viewBuilder = new ViewBuilder(); 60:         } 61:  62:         return $this->_viewBuilder; 63:     }     ...
打开App,查看更多内容
随时随地看视频慕课网APP