Wählen Sie aus einer Tabelle, in der Tabelle Feldname zugeordnet = ‚x‘ in Cake PHP

StackOverflow https://stackoverflow.com/questions/1013149

  •  06-07-2019
  •  | 
  •  

Frage

CakePHP, ich habe zwei Tabellen, Länder und Netzwerke. Sie haben eine HABTM Beziehung und sind verbunden durch countries_networks.

Ich versuche, alle Länder der Länder Tisch zu bekommen, wo das Feld ‚Name‘ in Networks = ‚o2‘

Ich habe erkannt, ich kann dies eine grundlegende find () nicht verwenden, also habe ich mit dem contain Verhalten experimentiert. Ich habe es geschafft, die zurückgegebenen Daten zu beschränken, aber es sieht aus, als ob ‚contain‘ genau nicht funktioniert, wie ich will. Heres mein Code:

$countries = $this->Country->find('all', array('contain' => array(
                                'Network' => array(
                                'conditions' => array('Network.name =' => "o2"),
    )
    )));

Diese Abfrage gibt jedoch alle Länder und die Network.name, wenn seine ‚o2‘. Was ich wirklich tun müssen, ist das Rück nur die Länder, die eine Network.name von ‚o2‘ haben, und keine andere.

Kann mir jemand helfen? Danke.

War es hilfreich?

Lösung

Ihre Abfrage gibt Ihnen genau das, was Ihr fragen. Versuchen Sie, von Netzwerk zu wählen.

$countries = $this->Country->Network->find('first', array(
    'conditions' => array('Network.name' => "o2"),
    'contain' => array('Country')
));

$countries = $countries['Country'];

Andere Tipps

"=‘ =>" Was ist es? gibt es keine zu verwenden, benötigt Symbol „=“ nach „Network.name“

Es soll möglich sein, so etwas zu tun:

$this->Country->hasAndBelongsToMany['Network']['conditions'] = array('Network.name'=>'o2');
$myCountries = $this->Country->find('all');

ich nicht getestet, aber es sollte ziemlich nahe kommen, wo Sie sein müssen.

Auch zu beachten, dass die hasAndBelongsToMany Array zu ändern, wie dies alle nachfolgenden Abfragen gegen dieses Modell während der aktuellen Seite Last beeinflussen (aber es wird das nächste Mal das Modell zurückgesetzt werden instanziiert).

Ich bin auf dem Weg zur Tür, so sorry für die kurze Erläuterung.

Ich denke, was Sie wollen eine HABTM Beziehung ist, sondern auf der Grundlage der zugehörigen Modelldaten filtern zu können. Um dies zu tun, überprüfen Sie das „Contain“ Verhalten bei Cake Hand aus. Ziemlich sicher, das ist, was Sie nach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top