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

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

在自定義類中訪問 CakePHP $this

在自定義類中訪問 CakePHP $this

PHP
慕婉清6462132 2023-09-08 22:00:11
我有自己的類foo,/src/Utility/foo.php只要我添加,就可以在任何 CakePHP 腳本中訪問它use App\Utility\foo;- 到目前為止,這是可行的。$this將調用者實例的對象傳遞給 PHP 構造函數通常不會出現問題。為了獲得準確的實例名稱,$this我使用 . 在類的構造函數中檢索了它get_class($this)。這返回AdminLTE\View\AdminLTEView我用 實例化我的自定義類$fooInstance = new foo($this);。我的類的構造函數如下所示:public function __construct(AdminLTE\View\AdminLTEView $appThis)使用上述語法會導致此錯誤:傳遞給 App\Utility\foo::__construct() 的參數 1 必須是 App\Utility\AdminLTE\View\AdminLTEView 的實例,給定 AdminLTE\View\AdminLTEView 的實例當我沒有在構造函數中設置類型時,$this嘗試此命令時會收到以下 CakePHP 錯誤消息$appThis->request->getAttribute('identity');:無法找到 requestHelper。好的,我誤解了什么,我錯過了什么,正確的語法如何,以便我可以$this在自定義類中使用調用者類?
查看完整描述

1 回答

?
拉丁的傳說

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

get_class()返回已解析的名稱(解析在編譯時發生),并且已解析的名稱沒有前導反斜杠,未解析的完全限定名稱但始終以反斜杠開頭:

\AdminLTE\View\AdminLTEView

https://php.net/manual/en/language.namespaces.rules.php

View::$request是一個受保護的屬性,您無法訪問視圖類的范圍之外的內容,您必須使用其公共getRequest()方法:

$appThis->getRequest()->getAttribute('identity');

訪問未定義的屬性將導致視圖的魔術幫助程序加載器啟動,以便您可以$this->Html在視圖/模板中執行操作,以觸發與該名稱匹配的相應幫助程序的延遲加載,即HtmlHelper.


查看完整回答
反對 回復 2023-09-08
  • 1 回答
  • 0 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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