【发布时间】:2015-09-11 02:53:09
【问题描述】:
我在解决如何让 SilverStripe 3.1 Fulltextsearchable 运行良好以适合我的使用时遇到了一点问题。我从成员数据对象中检索一些信息,并创建链接和标题以在 Page_search.ss 模板上显示它们。
我的代码可以运行,但是... 搜索过滤错误:
public function results($data, $form){
$data = $_REQUEST;
$query = htmlspecialchars($data['Search'], ENT_QUOTES,'UTF-8');
$PageMembres = Member::get()->filter('NomOrganisme',$query);
$searchresults = new ArrayList();
foreach($PageMembres as $membre) {
if ($membre->Type==1) { $dir="repertoire-culturel/organismes-entreprises/details/"; }
if ($membre->Type==2) { $dir="repertoire-culturel/individus-artistes/details/"; }
$searchresults->push(
array( "Title" => $membre->NomOrganisme,
"link" => $membre->ID,
"Link" => Director::BaseURL().$dir.$membre->ID,
"URL" => $membre->ID,
)
);
}
if($searchresults){
$data['Results'] = $searchresults;
} else {
$data['Results'] = '';
}
$data['Title'] = 'Résultat(s) de recheche';
return $this->customise($data)->renderWith(array('Page_results','Page'));
}
所以我认为,我需要改变:
$PageMembres = Member::get()->filter('NomOrganisme',$query);
对于更复杂的研究,例如:
$PageMembres = DataObject::get("Member","MATCH (NomOrganisme,FirstName,Surname,Description) AGAINST ('$query' IN BOOLEAN MODE)");
我在复杂查询中遗漏了什么?为什么它不起作用? 谢谢回复!
【问题讨论】:
标签: search filtering silverstripe