gpt4 book ai didi

kohana-3 - Kohana 3 ORM find_all() 返回所有行,而不管 where 子句

转载 作者:行者123 更新时间:2023-12-04 23:08:44 27 4
gpt4 key购买 nike

我有一个简单的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;
}
}
}

但是,发生的事情是我从数据库中取回了所有用户,而不仅仅是打开了 email_notifications 的用户。有趣的是, $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();

关于kohana-3 - Kohana 3 ORM find_all() 返回所有行,而不管 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com