Silverstripe 银色条纹:partialMatchFilter和&&引用;
我有一个客户希望能够从Silverstripe标记云小部件中挑选一些东西 因此,使用jQuery,我准备了一个包含所有选定标记的字符串,然后将其传递给Silverstripe函数Silverstripe 银色条纹:partialMatchFilter和&&引用;,silverstripe,Silverstripe,我有一个客户希望能够从Silverstripe标记云小部件中挑选一些东西 因此,使用jQuery,我准备了一个包含所有选定标记的字符串,然后将其传递给Silverstripe函数 if($_GET["selectedTags"]){ $selectedTagString = $_GET["selectedTags"]; $selectedTagString = substr($selectedTagString, 0, strlen($selectedTagString) -1);
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-你是对的。谢谢你指出这一点。我已经删除了我不正确的陈述。