我试图修改目前只搜索CMS页面标题的搜索功能。我想要搜索页面内容。目前功能如下:
public function getSearchCMSPages($keyword){
$result = array();
$storeId = Mage::app()->getStore()->getId();
$cmspages = Mage::getModel('cms/page')->getCollection()
->addFieldToFilter("is_active",1)
->addFieldToFilter('title',array('like'=>'%'. $keyword.'%'))
->setCurPage(1)
->setOrder('title','ASC');
$cmspages->load();
if(count($cmspages))
{
foreach($cmspages as $_page)
{
$result[] = $_page->getId();
}
}
return $result;
}
我想要做的是修改此功能,以便在CMS页面内容中搜索关键字。
非常感谢任何有关如何解决此问题的帮助或建议。
-Eric
答案 0 :(得分:1)
你可以试试这个。它对我有用。
public function getSearchCMSPages($keyword)
{
$result = array();
$storeId = Mage::app()->getStore()->getId();
$cmspages = Mage::getModel('cms/page')->getCollection()
->addFieldToFilter("is_active",1)
->addFieldToFilter(
array('title','content'),
array(
array('like'=>'%'. $keyword.'%'),
array('like'=>'%'. $keyword.'%')
)
)
->setCurPage(1)
->setOrder('title','ASC');
$cmspages->load();
if(count($cmspages))
{
foreach($cmspages as $_page)
{
$result[] = $_page->getTitle();
}
}
return $result;
}
与您的代码的唯一区别是,我们现在正在过滤CMS页面的content
属性以及title
属性,如下所示
->addFieldToFilter(
array('title','content'),
array(
array('like'=>'%'. $keyword.'%'),
array('like'=>'%'. $keyword.'%')
)
)
休息是一样的。希望它有所帮助