Codeigniter Назначить значение базы данных переменной - PullRequest
0 голосов
/ 11 марта 2019

Я получаю следующую ошибку

Обнаружена ошибка PHP

Уровень серьезности: 4096

Сообщение: объект класса stdClass не может быть преобразован в строку

При попытке сделать следующее

Итак, у меня есть таблица пользователей, в которой есть «привилегированный» столбец.Если для этого столбца установлено значение 1, то пользователь является «привилегированным пользователем», если для него установлено значение 0, то это не так.

Это значение указывается в форме регистрации моей учетной записи.

То, что я хочу сделать, это установить переменную в codeigniter, которая равна 1, если пользователь является привилегированным, и 0, если это не так.

Я пытался выполнить следующее:

В моей модели у меня есть следующее:

 public function get_privileged($user_id){
    // $this->db->where('user_id',$id);
    // $this->db->select('privileged');
    // $query = $this->db->get('users');
    $query = $this->db->select('privileged')->from('users')->where('id',$user_id)->get();
    return $query->row();

}

** На мой взгляд, у меня есть следующее **

<?php $user_id = $this->session->userdata('user_id');?>
<?php $status =  $this->user_model->get_privileged($user_id);?>
<?php var_dump($status);?>

Я только что былсначала пытаясь отобразить результат в моем контроллере, чтобы я знал, работает ли он, конечной целью является присвоение значения переменной, например переменной $ status.

Результат дампа переменной

object(stdClass)#27 (1) { ["privileged"]=> string(1) "0" } 

Обратите внимание, что значение 0 является правильным для этого пользователя

Я хочу установить переменную в ноль, если это возвращает ноль из БД илиустановите переменную в 1, если это возвращает 1 из базы данных.

Как я могу это сделать, я следовал всей документации codeigniter, но не знаю, где я, я новичок в этом.

Ответы [ 2 ]

1 голос
/ 11 марта 2019

Мне кажется, проблема в том, что он возвращал объект, а не строку.

Два получают значение, которое я хотел, я использовал следующее echo $status->privileged;

0 голосов
/ 12 марта 2019

Ну, проблема в том, что вы возвращаете строку, когда вам нужно просто значение этой строки.

Я предлагаю использовать это:

    $result = $this->db->query($query);

    if ($result->num_rows() == 1){ //When I need just one value in case I check if there is just one row.
        return $result->row(0)->privileged;
    }else{
        return false;
    }   

или просто так:

$result = $this->db->query($query); 

return result->row(0)->privileged;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...