2015-05-12 33 views
0

我嘗試在Magento中調試一個函數,我有一個非常大且複雜的變量$ this,裏面找到我需要的數據但我無法讀取我搜索的數據部分命名爲「html」

$html=$this->*Mage_Core_Block_Abstract*_transportObject['_data["html"]']; 

*名稱中的第一個問題未被重新調整。

+3

我從來沒有見過名稱中帶有星號的屬性,但我想你可以像這樣訪問它們:'$ this - > {'* Mage_Core_Block_Abstract * _transportObject'}' – Devon

+0

在哪個類中使用$ this?也許你做的事情非常錯誤......'Mage_Core_Block_Abstract'和抽象塊類...可能你需要別的東西,'_transportObject'是一個私有靜態屬性。 如果你正在擴展'Mage_Core_Block_Abstract',你可以使用'self :: $ _ transportObject-> getHtml()' – Emi

+0

由於它是私人的,你不應該能夠訪問它......但是如果你看看'Mage_Core_Block_Abstract'在'最後的公共職能toHtml()'這可能是你要找的 – Emi

回答

2

在我觀察我使用:

$transport = $observer->getTransport(); 
    $html = $transport->getHtml(); 

這將導致我相信,你可以稍微修改這兩條線如下:

$transport = $this->getTransport(); 
    var_dump($transport); 
    $html = $transport->getHtml(); 

那麼你應該能夠讀取任何你想。

+0

如果這不起作用,無論它可能是你正在嘗試它,讓我知道,我會給你一些快速代碼來創建一個觀察者core_block_abstract_to_html_after事件,這是我總是用這種方法取得成功的地方。 –

+0

嗨,我嘗試,但我不明白如何創建觀察員,我工作在應用程序/設計/管理/ /默認/默認/模板/付款/信息/ pdf/default.phtml我試圖讀$ this - > _ transportObject因爲在html中存在pdf(訂單確認,發票等)的名稱以及我試圖作出一個條件來打印付款說明只有在訂單確認 – Pablote

+0

你試圖做的不是真的應該在模板文件。你是否爲你的功能創建了一個模塊?如果是這樣,你在模塊的config.xml中設置事件,然後在你的config.xml中爲觀察者聲明的類中創建觀察者方法。 –