Question

J'ai une table simple users, et je veux trouver tous les utilisateurs où email_notifications = 1.

La logique veut que les éléments suivants devraient fonctionner:

class Controller_Test extends Controller {

    public function action_index()
    {
        $user = ORM::factory('user');
        $user = $user->where('email_notifications', '=', 1);
        $total = $user->count_all();
        $users = $user->find_all();

        echo $total." records found.<br/>";

        foreach ($users as $v)
        {
            echo $v->id;
            echo $v->first_name;
            echo $v->last_name;
            echo $v->email;
        }
    }
}


Cependant, ce qui se passe est que je reçois TOUS mes utilisateurs retour de la DB, pas seulement ceux avec email_notifications sous tension. La chose drôle est, la valeur retournée est $total le résultat du nombre exact de cette requête.

Je suis tellement déconcerté, je ne sais pas quel est le problème ici. Si quelqu'un pouvait faire la lumière, je l'apprécie vraiment.

Merci,
Brian

Était-ce utile?

La solution

L'appel count_all() réinitialisera vos conditions de modèle. Essayez d'utiliser reset(FALSE) pour éviter ceci:

    $user = ORM::factory('user');
    $user = $user->where('email_notifications', '=', 1);
    $user->reset(FALSE); 
    $total = $user->count_all();
    $users = $user->find_all();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top