CodeIgniter показывает другое меню с помощью оператора If - PullRequest
0 голосов
/ 01 апреля 2019

У меня ошибка в переменной, когда я пытаюсь получить значение, которое говорит, что оно не определено. Хотя я уже сохранил сеанс переменной "$ level" и отправил его в представление, но состояние переменной стало неопределенным, что-то не так с кодом?

Переменная, которую я получаю из логина.Также я попытался вызвать $ level, и он работает

Я пытался использовать метод foreach и не foreach, но ни один из них не работает

View.php

<?php if($level->level == '1') ?>
<p>Number 1</p>
<?php if($level->level == '2') ?>
<p>Number 2</p>

admin.php

function index(){       
$level = $this->session->userdata('level');
$this->load->view('view',$level);
}

Login.php

public function do_login()
    {
        $u = $this->input->post("user");
        $p = md5($this->input->post("pass"));

        $cari = $this->model_pesawat->cek_login($u, $p)->row();
        $hitung = $this->model_pesawat->cek_login($u, $p)->num_rows();

        if ($hitung > 0) {

        $data = array('admin_id' => $cari->no_user ,
                            'admin_user' => $cari->username, 
                            'admin_nama' => $cari->nama,
                            'level' => $cari->level,
                            'admin_valid' => TRUE
            );

            $this->session->set_userdata($data);
            redirect('admin','refresh');
        }else{
            echo "maaf username atau password salah";
        }   
    }

Я хочу, чтобы результат в операторе if отображал различное значение в представлении в зависимости от уровня $ пользователя

Ответы [ 3 ]

0 голосов
/ 01 апреля 2019

В связи с этим вы можете напрямую использовать переменную сеанса, не нужно передавать с контроллера

<p>Number 1</p>
<?php if($this->session->userdata('level') == '2') ?>
<p>Number 2</p>
0 голосов
/ 01 апреля 2019

Вы должны проверить данные в сеансе, независимо от того, хранятся они или нет.

    echo "<pre>"; print_r($this->session->userdata());
0 голосов
/ 01 апреля 2019

Вам необходимо передать массив в представление CodeIginter.

И ключи массива будут использоваться как отдельные элементы в представлении.

Это похоже на функцию extract () .

Итак, вы должны передать $data и добавить $level в него.

$data['level'] = $level;
$this->load->view('view', $data);

По вашему мнению, вы можете получить доступ к $level из контроллера как $level.

Не нужно заботиться о $data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...