kohana 3 orm find_all()は、句に関係なくすべての行を返します
-
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();
所属していません StackOverflow