4

単純なテーブルが1つあり、 =1usersのすべてのユーザーを検索したいと思います。email_notifications

ロジックは、以下が機能する必要があることを示しています。

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;
        }
    }
}


ただし、何が起こっているのかというと、email_notificationsがオンになっているユーザーだけでなく、すべてのユーザーがDBから戻ってきています。面白いことに、$total返される値はこのクエリの正確な数値結果です。

私はとても困惑しているので、ここで何が問題なのかわかりません。誰かが光を当てることができれば、私は本当に感謝しています。

ありがとう、
ブライアン

4

1 に答える 1

9

呼び出すcount_all()と、モデルの条件がリセットされます。reset(FALSE)これを回避するために使用してみてください:

    $user = ORM::factory('user');
    $user = $user->where('email_notifications', '=', 1);
    $user->reset(FALSE); 
    $total = $user->count_all();
    $users = $user->find_all();
于 2011-03-17T12:25:28.723 に答える