我正在试图通过类别名称检索我要检索的类别。我知道通常为了做到这一点,你会这样做:
$currentCategoryModel = Mage::getModel('catalog/category')->loadByAttribute('name', 'Hello');
但是我有'&'的分类内部诸如'Cards&邀请'意味着有可能不会返回任何结果,这意味着我无法进一步操纵该类别。
为了让我能够实际插入类别名称,是否能够找到我想要的类别,是否有办法使用&符号&符号?
感谢。
答案 0 :(得分:1)
根据我的经验,有一个错误或预期的行为会导致loadByAttribute
方法无法与某些模型一起使用。
其中一个恰好是catalog/category
模型。我建议使用load('Category name', 'name')
代替loadByAttribute('name', 'Category name')
。
在提出此建议之前,我在包含magento 1.7
的实时制作环境中测试了这两种方法,只有load
有效。
答案 1 :(得分:1)
我在版本1.7中通过命名我的一个类别“Household& Items”对此进行了测试。重新运行索引后,调用以下内容将返回所需的类别:
$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") . "'";
}
答案 2 :(得分:-1)
虽然Magento没有这样的问题,但是当你得到一个......请尝试如下:
尝试使用“”代替''
如果不能正常使用
html_entity_decode(htmlentities(utf8_decode(strip_tags("name & address"))));
您还可以尝试将以下行添加到htaccess文件
AddDefaultCharset Off
另外
AddDefaultCharset UTF-8
否则
AddDefaultCharset UTF-8
尝试检查以上操作。
此致