【问题标题】:Silverstripe custom search into members dataobjectSilverstripe 自定义搜索成员数据对象
【发布时间】: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


    【解决方案1】:

    我认为我们不能对 DataObject 成员使用 MATCH 查询。有我使用和工作的复杂工作代码:

    $PageMembres = Member::get()->where("
            FirstName LIKE '%$query%' OR
            Surname LIKE '%$query%' OR
            Description LIKE '%$query%' OR
            NomOrganisme LIKE '%$query%'");
    

    【讨论】:

      猜你喜欢
      • 2013-01-07
      • 2016-10-01
      • 1970-01-01
      • 2016-06-28
      • 2022-11-12
      • 2018-10-23
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      相关资源
      最近更新 更多