Kohana 3 orm find_all () возвращает все ряды независимо от того, где пункт
-
26-10-2019 - |
Вопрос
У меня есть один простой 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();
Не связан с StackOverflow