finde ich eine benutzerdefinierte Funktion aufbauen wollen Passing, die Bands für ein bestimmtes Genre ruft, ich habe dies versucht, aber die Funktion auf den Parameter nicht zugreifen können $genre
:einen Parameter zu einer benutzerdefinierten Methode find in cakephp 3.x
public function findGenre(Query $query, array $options)
{
$genre = $options['genre'];
$bands = $this->find()->contain([
'Genres' => function($q){
return $q->where(['Genres.id' => $genre]);
}
]);
return $bands;
}
ich die $genre
außerhalb der contain()
Methode zugreifen kann, aber innen ist es nicht. Meine Frage ist, wie kann ich die $genre
var an die function($q)
innerhalb der contain-Methode übergeben.
Welche Fehler wird Ihr Code, den Sie geben? Ist Ihnen bekannt, dass Ihr Code normalerweise $ bands = $ query-> contain ([...]); enthalten sollte, damit er auf eine bestehende Abfrage angewendet werden kann? –
Die Abfrage funktioniert gut, wenn ich keine Bedingung verwende, aber wenn ich die Bedingung mit dem Parameter hinzufüge, kann sie nicht auf den Parameter '$ genre' zugreifen, ich habe dem Beitrag eine Bearbeitung hinzugefügt –