2016-11-12 3 views
0

Der unten stehende Code funktioniert nicht wie erwartet. Ich will alle Namen mit Wissenschaft außer Namen wie "Wissenschaft Bewertung" Wie schließe ich die Namen wie "Wissenschaft Bewertung" und behalten Sie die anderen Zeilen mit Namen der Wissenschaft nur. Ich habe keinen Subjektnamen mit dem Namen nur ‚Wissenschaft‘Zeilen können nicht ausgeschlossen werden mit orwhere in cakephp3

$subjectScience = $this->Students->Subjects->find('list') 
    ->select(['id', 'name']) 
    ->where(['Subjects.name not LIKE' => '%assessment%']) 
    ->andWhere(['Subjects.name LIKE' => '%physics%']) 
    ->orWhere(['Subjects.name LIKE' => '%chemistry%']) 
    ->orWhere(['Subjects.name LIKE' => '%biology%']) 
    ->orWhere(['Subjects.name LIKE' => '%science%','Subjects.name not LIKE' => '%assessment%']) //doesnt work as i expect  
    ->order(['Subjects.name' => 'asc']); 

Antwort

0

Wenn Sie genau die bestimmten Zeichenfolge wollen nur, warum dann nicht Zuordnung verwenden operator.So versuchen Sie sich mit:

'Subjects.name' => 'science' 

statt:

'Subjects.name LIKE' => '%science%' 
+0

Nein das ist nicht was ich will. !! Der Subjektname kann "Wissenschaft" enthalten, aber der Subjektname ist nur die Zeichenfolge "Wissenschaft". Ich kann nicht die Zeilen von der Abfrage ausschließen, die die Wörter "Wissenschaft" und "Bewertung" – jagguy

+0

enthält, aber Ihre Abfrage scheint bereits wie Sie wollen .. Können Sie den Debug-Wert von $ subjectScience posten? –

+0

Ich habe ein Fach namens "Wissenschaft Bewertung", die ich nicht will, aber ich habe 4 andere Fächer mit Wissenschaft in dem Namen, den ich zurückgeben will. Ich denke, das Problem ist jedoch klar genug. – jagguy

Verwandte Themen