Ich versuche, eine Seite entweder basierend auf einer Kategorie ID oder Unterkategorie Name abzufragen.CakePHP Abfrage finden mit% wie% mit Leerzeichen
Die Variable $ cat wird entweder eine Ganzzahl oder Varchar aus meiner Datenbank haben.
Ich habe mit CakePHP 1.3 mit einem SQL alle Artikel mit einer Kategorie von $ cat finden oder Unterkategorie LIKE $ cat
Es funktioniert großartig, aber ein Problem entsteht, wenn $ cat ein Leerzeichen zwischen Wörtern hat, "Google Formulare".
Ich habe diese Seite durchgesehen und eine Reihe von Methoden ohne Glück versucht. Schätze jeden Rat.
Hier ist mein Controller-Routinen:
$cat = Sanitize::escape($cat);
$cat = trim($cat);
$title_a = str_replace($cat, "%".$cat."%", $cat);
$a_t = str_replace('"', $title_a, $title_a);
//var_dump($cat);
if(!empty($cat))
{
$sqlConditions = array('OR'=>array('Article.categories LIKE' => $a_t, 'Article.event_category_id' => $cat));
$sqlParams = array('conditions'=>$sqlConditions);
$catdata=$this->Article->find('all',$sqlParams);
return $catdata;
}
ich viele verschiedene Alternativen ausprobiert habe:
RLIKE statt LIKE
Verschiedene Kriterien MATCH
$ sqlConditions = Array ( 'ODER' => array ( 'MATCH (Artikel.Kategorien GEGEN (? IM BOOLEAN-MODUS) '=> $ cat, ' MATCH (Article.event_category_id) GEGRÜNDET (? IN BOOLEAN MODE) '=> $ cat ) );
$ sqlConditions = Array ('OR' => Array ('Article.categories LIKE' => "%". $ Kategorie "%", "Article.event_category_id '=> $ cat));
Danke für diesen Vorschlag, aber leider hat es nicht für eine Kategorie mit einem Leerzeichen zwischen Wörtern funktioniert und es brach auch einzelne Wortkategorien. – sloga