Silverstripe 银色条纹:partialMatchFilter和&&引用;

Silverstripe 银色条纹:partialMatchFilter和&&引用;,silverstripe,Silverstripe,我有一个客户希望能够从Silverstripe标记云小部件中挑选一些东西 因此,使用jQuery,我准备了一个包含所有选定标记的字符串,然后将其传递给Silverstripe函数 if($_GET["selectedTags"]){ $selectedTagString = $_GET["selectedTags"]; $selectedTagString = substr($selectedTagString, 0, strlen($selectedTagString) -1);

我有一个客户希望能够从Silverstripe标记云小部件中挑选一些东西

因此,使用jQuery,我准备了一个包含所有选定标记的字符串,然后将其传递给Silverstripe函数

if($_GET["selectedTags"]){

  $selectedTagString = $_GET["selectedTags"];
  $selectedTagString = substr($selectedTagString, 0, strlen($selectedTagString) -1);

  $tagArray = explode("|", $selectedTagString);

  $blogEntries = DataObject::get("BlogEntry")->filter(array("Tags:PartialMatch" => $tagArray));

  return $blogEntries->renderWith(array("blogSearchResults"));
  }
}
而且它工作得很好

除了带有“&”的标签,如“Otago&Southland”,搜索失败,无法检索任何内容

看看生成的SQL,一切似乎都很好

SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", 
.
.
.
"BlogEntry_Live"."BlogEntryThumbnailID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "BlogEntry_Live" ON "BlogEntry_Live"."ID" = "SiteTree_Live"."ID" WHERE ("BlogEntry_Live"."Tags" LIKE '%southland & otago championships%') AND ("SiteTree_Live"."ClassName" IN ('BlogEntry')) ORDER BY "SiteTree_Live"."Sort" ASC

以前有人有过这个问题吗

是否使用
存储标签&在数据库中?然后你首先应该用html编码你的字符串

@FinBoWa-你是对的。谢谢你指出这一点。我已经删除了我不正确的陈述。