Kohanav3 ORM: Aufruf wo-> find_all zweimal
-
26-09-2019 - |
Frage
Wenn ich etwas tun, wie folgt aus:
$site = ORM::factory('site')->where('name', '=', 'Test Site')->find();
$users = $site->users;
$deletedusers = $users->where('deleted', '=', '1')->find_all();
$nondeletedusers = $users->where('deleted', '=', '0')->find_all();
Der Inhalt von $ deletedusers ist richtig, aber die $ nondeletedusers enthält alle nicht gelöschten Benutzer, nicht nur die, die in der geladenen $ Website.
Was mache ich falsch?
Lösung
Der wegen find_all()
und find()
Methoden werden Ihren Modellzustand zurückgesetzt. Zum Beispiel hat $user
einen where('site_id', '=', <site_id>)
Zustand (es wurde in der Zeile # 1 des Codes angewandt wird). Wenn Sie find_all()
nennen, ORM wird alle Bedingungen, so $nondeletedusers
mit leerem Modell funktioniert.
Um dieses Problem zu vermeiden, können Sie versuchen, $ Benutzer clone
oder Abrufen von allen Benutzern IDs von $user
und AND WHERE id IN <id list>
Bedingung hinzuzufügen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow