为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
茅侃侃 2022-08-05 15:51:01
我使用了 cakephp 方法来更改布局。这里看起来像$this->viewBuilder()->setLayout('admin');我见过viewBuilder类,他们没有使用任何构造。那么对于调用方法,为什么我需要使用类名,如.起初我以为这是一个嵌套方法,但事实并非如此。setLayoutviewBuilder()
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超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:     }

     ...


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信