in_array () ожидает, что параметр 2 будет массивом, задана строка - PullRequest
0 голосов
/ 27 июня 2019

Я создаю приложение CodeIgniter с сервером SQL.

Я читаю разрешение пользователя из базы данных и затем сохраняю его, чтобы я мог показывать боковое меню в соответствии с разрешением пользователя, но я получаю эту ошибку:

in_array () ожидает, что параметр 2 будет массивом, задана строка

вот мой код контроллера:

    public function __construct() 
{
    parent::__construct();

    $group_data = array();
    if(empty($this->session->userdata('logged_in'))) {
        $session_data = array('logged_in' => FALSE);
        $this->session->set_userdata($session_data);
    }
    else {
        $user_id = $this->session->userdata('id');
        $this->load->model('model_groups');
        $group_data = $this->model_groups->getUserGroupByUserId($user_id);



        preg_replace_callback('!s:(\d+):"(.*?)";!', 
            function($match) {
             return ($match[1] == strlen($match[2])) ? $match[0] : 's:' . strlen($match[2]) . ':"' . $match[2] . '";';},
             $group_data['permission'];);



        $this->data['user_permission'] = $group_data['permission'];
        var_dump($this->data['user_permission']);
        $this->permission = $group_data['permission'] ;

    }
}

Когда я пытаюсь показатьчто хранится в моих данных var_dump ($ this-> data ['user_permission']);Я получаю: enter image description here

и пытаюсь использовать их, на мой взгляд, так:

  <?php if(in_array('createUser', $this->data['user_permission']) || in_array('updateUser', $this->data['user_permission']) || in_array('viewUser', $this->data['user_permission']) || in_array('deleteUser', $this->data['user_permission'])): ?>
        <li class="treeview" id="userSideTree">
        <a href="#">
          <i class="fa fa-users"></i>
          <span>Utilisateurs</span>
          <span class="pull-right-container">
            <i class="fa fa-angle-left pull-right"></i>
          </span>
        </a>

Можете ли вы помочь мне с этим?

1 Ответ

2 голосов
/ 27 июня 2019

У вас есть сериализованная строка и кавычки экранированы.Удалите косые черты и удалите сериализацию:

$this->data['user_permission'] = unserialize(stripslashes($group_data['permission']));

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

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