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?

War es hilfreich?

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
scroll top