Я получаю эту ошибку в верхней части окна (даже если представление правильно загружается с данными, как ожидалось)
Возникла ошибка PHP
Серьезность: Предупреждение: Тип недопустимого смещения Имя файла: database/DB_query_builder.php Backtrace:
Файл: C:\wamp64\www\purchase_v_alpha1\application\models\Notifications.php Линия: 32 Функция: где
Моя модель выглядит,
public function user_alert ()
{
$session_data = $this->session->userdata['logged_in'];
$role = $session_data['role'];
$dept = $session_data['dept'];
$data_user = array(
'role' => $role,
'dept' => $dept
);
$role = $data_user['role'];
$this->db->from('notification');
$this->db->select('pr_id,item_name,dept_division');
$this->db->where($role, 0);
$query = $this->db->get();
return $query -> result_array();
}
Можете ли вы, ребята, помочь мне с этим? что-то не так с использованием метода "where"?
здесь что-то не так. $this->db->where($role, 0); $role
$this->db->where($role, 0); $role
имеют некоторые данные, приведенные здесь $role = $data_user['role']
Но в where where нам нужно $role = $data_user['role']
имя поля. Но вы пытаетесь передать значения роли в where clause. Сделайте это примерно так.
$this->db->where('role', 0)
Введите имя поля вместо 'role'
вы хотите проверить.
Вы используете where
метод неправильно.
Параметры функции следующие: $this->db->where('columnName', 'value');
Поэтому вы должны использовать его как: $this->db->where('role', $role);
Если вы хотите искать уведомления, где role
равна 0
, вы должны использовать $this->db->where('role', 0);
Источник: https://www.codeigniter.com/user_guide/database/query_builder.html#looking-for-specific-data
Метод userdata() возвращает NULL, если элемент, к которому вы пытаетесь получить доступ, не существует. Может ли так быть? Может быть, вы должны объявить чек isnull.