Как count_all () в Kohana 3.3 с драйверами Mysqli

Я пытаюсь использовать count_all() Метод в Kohana 3.3 для подсчета всех строк таблицы, где идентификатор равен user_id, Вот мой контроллер

public function action_get_messages()
{
$user_id = $this->request->param('id');
$messages = new Model_Message;
if ($user_id)
{
$messages = $messages->where('user_id', '=', $user_id);
$messages->reset(FALSE);
$message_count = $messages->count_all();
}
else
{
$message_count = $messages->count_all();
}
$pagination = Pagination::factory(array(
'total_items' => $message_count,
'items_per_page' => 3,
));
$pager_links = $pagination->render();
$messages = $messages->get_all($pagination->items_per_page, $pagination->offset, $user_id);
$this->template->content = View::factory('profile/messages')
->set('messages', $messages)
->set('pager_links', $pager_links);
}

Но когда я запускаю код, я получаю следующее сообщение об ошибке:

«Database_Exception [1054]: неизвестный столбец« COUNT («*») »в« списке полей »[SELECT COUNT("*") КАК records_found ОТ messages
КАК message ГДЕ user_id = ‘2’] «

Что означает эта ошибка и где ошибка в моем коде?
Заранее спасибо!

0

Решение

Ошибка в строке 1054, которая, как я полагаю, count_all() вызов.

Я не понимаю, почему вы звоните reset() на вашем объекте. Это может быть причиной проблем. Вы также приводите объект к себе, что не нужно. Этот раздел кода может выглядеть так:

if ($user_id)
{
$messages->where('user_id', '=', $user_id);
$message_count = $messages->count_all();
}

Я бы посоветовал использовать ORM::factory строить свои новые модели в первую очередь.

Документация по Kohana не очень хорошая, но я бы посоветовал прочитать и просмотреть Руководство пользователя ORM ORM сэкономит вам много времени в долгосрочной перспективе, особенно если это большой проект.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]