2013-10-23 83 views
0

我正在抓取我試圖根據類別的名稱檢索類別的信息。我知道,通常爲了做到這一點,你會怎麼做:正在檢索按名稱分類,其中名稱中包含&符號

$currentCategoryModel = Mage::getModel('catalog/category')->loadByAttribute('name', 'Hello'); 

但是我有「&」範疇內,如「卡&邀請」意思是有沒有結果將返回成爲了可能,這意味着我無法進一步操縱該類別。

是否有一種方法來避免&符號,以便我實際插入類別名稱,因此能夠檢索我想要的類別?

謝謝。

回答

1

我已經通過命名我的類別之一「Household & Items」在1.7版本中測試了這個。後重新運行指標,然後調用以下回報的類別所需:

$currentCategoryModel = Mage::getModel('catalog/category')->loadByAttribute('name', 'Household & Items'); 

跟蹤這個功能回到其建立的數據庫查詢我注意到,在這個例子中,Zend_Db_Adapter_Abstract類將在值使用addcslashes後。這對你的例子來說應該足夠了。

protected function _quote($value) 
{ 
    if (is_int($value)) { 
     return $value; 
    } elseif (is_float($value)) { 
     return sprintf('%F', $value); 
    } 
    return "'" . addcslashes($value, "\000\n\r\\'\"\032") . "'"; 
} 
+0

@ DavidManners-感謝您對此問題的幫助。我認爲你最接近我嘗試的解決方案。我最終發現獲得搜索所需類別名稱的原始方法具有以下內容,Mage :: helper('core') - > htmlEscape($ category-> getName())。所以我刪除了htmlEscape調用,然後它工作正常。爲此歡呼。我會將這個答案標記爲最接近答案的答案。 – koramaiku

-1

雖然Magento的沒有阿努這樣的問題,但你得到一個..請嘗試如下:

嘗試使用「」,而不是'

如果不使用工作的嘗試

html_entity_decode(htmlentities(utf8_decode(strip_tags("name & address")))); 

您也可以嘗試下面的行添加到您的htaccess文件

AddDefaultCharset Off 

AddDefaultCharset UTF-8 

其他

AddDefaultCharset UTF-8 

嘗試以上動作檢查。

問候

+0

-1正如你所說的逃避一般和/或HTML實體轉義應該完全沒有關係。 –

+0

我沒有說過這會因爲逃跑而起作用,而是我說過,magento並沒有顯示出這樣的行爲,一般也沒有幾個想法來開始調試問題。儘管感謝downvoting –

+0

國際海事組織的回答應該提供一個關於如何獲得解決方案的解決方案或指導。相反,附帶(有用)的東西屬於評論。上/下投票系統在這裏爲創建高質量內容提供動力,無需(諷刺或其他方式)感謝任何人投票。 –

1

在我的經驗,或者是一個錯誤或預期的行爲,使loadByAttribute方法與某些型號一起不起作用。

其中一個碰巧是catalog/category模型。我建議用load('Category name', 'name')而不是loadByAttribute('name', 'Category name')

在提出此建議之前,我在包含magento 1.7的實時生產環境中測試了這兩種方法,但僅工作了load

+0

嘿謝謝你的幫助。我嘗試了你的建議,加載方法,但我得到這個錯誤,警告:爲/ foreach() Entity/Abstract.php on line 954.任何我如何設法解決問題,它的一切正常。歡呼你的幫助。 – koramaiku