亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

CakePHP:為什么他們使用帶有第一個括號()的className?

CakePHP:為什么他們使用帶有第一個括號()的className?

PHP
慕斯709654 2022-07-22 15:56:35
我使用 cakephp 方法來更改布局。這里看起來像$this->viewBuilder()->setLayout('admin');我見過viewBuilder Class,他們沒有使用任何構造。那么對于調用方法setLayout,為什么我需要使用 className like viewBuilder()。起初我以為這是一種嵌套方法,但事實并非如此。
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

查看cake.org上的 API ,您可以看到方法(而不是類)viewBuilder()在 trait 中定義ViewVarsTrait并返回一個ViewBuilder對象(即讓您獲得正在使用的視圖構建器)。


這個ViewBuilder對象可以訪問方法setLayout()。


這就是您使用的原因:$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-07-22
  • 1 回答
  • 0 關注
  • 108 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號