Параметр count () должен быть массивом или объектом, если в базе данных нет записи - PullRequest
0 голосов
/ 22 сентября 2018

Я использую Codeignator, у меня есть функция в модели, которая

function getList()
    {
$result = $this->db->where(['members.member_type'=>1,'members.is_Approved'=>1,'members.is_status'=>1])
    ->order_by("members.member_id", "desc")
    ->from('members')
    ->join('admin_users','admin_users.admin_user_id = members.created_by')
    ->get()
    ->result();
        if($result)
        {
            return $result;
        }
        else 
        {
            return 0;
        }
    }

Над кодом, я использую, чтобы отобразить весь список на странице просмотра, которая работает.Теперь у меня есть еще одна страница просмотра, и я показываю общее количество пользователей, использующих тот же код.Поэтому я добавил код

$data['primary_data'] = count($this->List_model->getList());
print_r($data['primary_data']);

Он также работает, но когда нет записей, я получаю сообщение об ошибке

count() parameter must be an array or an object that implements countable in codeigniter

Не могли бы вы помочь мне в этом?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Метод $ this-> db-> result () CodeIgniter возвращает результат запроса в виде массива объектов или пустого массива при ошибке.

Просто верните результат как есть.Если есть результаты, он вернет массив объектов.Если результат не найден, он вернет пустой массив.Таким образом, рассчитывать на результат будет работать все время.

function getList() {
  return $this->db->where(['members.member_type'=>1,'members.is_Approved'=>1,'members.is_status'=>1])
    ->order_by("members.member_id", "desc")
    ->from('members')
    ->join('admin_users','admin_users.admin_user_id = members.created_by')
    ->get()
    ->result();
}
0 голосов
/ 22 сентября 2018

Вы можете вернуть пустой массив вместо 0 в методе getList ().

return [];

может написать это:

return $result ? $result : [];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...