kohana 3 orm find_all()は、句に関係なくすべての行を返します

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

  •  26-10-2019
  •  | 
  •  

質問

簡単なものが1つあります users テーブル、そして私はすべてのユーザーを見つけたい email_notifications = 1.

ロジックは、以下が機能するはずであると規定しています。

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


しかし、何が起こっているのかということは、電子メールを持っている人だけでなく、すべてのユーザーをDBから戻しているということです。面白いことは、 $total 返される値は、このクエリの正確な数の結果です。

私はとても困惑しています、私はここに問題が何であるかわかりません。誰かが光を放つことができたら、本当に感謝しています。

ありがとう、
ブライアン

役に立ちましたか?

解決

電話 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();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top