Неопределенная переменная в CodeIgniter View

Я пытаюсь напечатать мои пары данных ключ / значение в моем представлении CodeIgniter. Однако, я получаю следующую ошибку. Что я делаю неправильно?

Возникла ошибка PHP

Уровень важности: уведомление

Сообщение: неопределенная переменная: данные

Имя файла: views / search_page2.php

Номер строки: 8

Применение / контроллер / search.php

// ... $this->load->library('/twitter/TwitterAPIExchange', $settings); $url = 'https://api.twitter.com/1.1/followers/ids.json'; $getfield = '?username=johndoe'; $requestMethod = 'GET'; $twitter = new TwitterAPIExchange($settings); $data['url'] = $url; $data['getfield'] = $getfield; $data['requestMethod'] = $requestMethod; $this->load->view('search_page2', $data); // ... 

Приложение / просмотров / search_page2.php

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Twitter Test</title> </head> <body> <?php print_r($data); ?> <?php foreach ($data as $key => $value): ?> <h2><?php echo $key . ' ' . $value . '<br />'; ?></h2> <?php endforeach ?> </body> </html> 

получить доступ к массиву данных в представлении

  $data['url'] = $url; $data['getfield'] = $getfield; $data['requestMethod'] = $requestMethod; $data['data'] = $data; $this->load->view('search_page2', $data); 

иначе только переменные с именами в качестве своих ключей будут доступны в представлении, а не в переменной данных, которую мы передаем.

Обновить:

это в ответ на ваш комментарий к ответу juan. Фактически, если вы пытаетесь заставить его работать по-другому.

код контроллера не будет меняться от кода, который вы опубликовали.

  $data['url'] = $url; $data['getfield'] = $getfield; $data['requestMethod'] = $requestMethod; $this->load->view('search_page2', $data); 

но в коде просмотра вам нужно просто сделать.

  <h2>url <?PHP echo $url; ?><br /></h2> <h2>getfield <?PHP echo $getfield; ?><br /></h2> <h2>requestMethod <?PHP echo $requestMethod; ?><br /></h2> 

вместо цикла foreach, поскольку ваши ключи в $ data уже доступны как соответствующие именованные переменные внутри представления.

Переменные для использования в вашем шаблоне:

  $url, $getfield, $requestMethod 

$data – это контейнер для переменных, которые передаются в представление и недоступны напрямую

Если вам нужны $data доступные для представления, используйте другой объект-оболочку

  $container = array(); $container ['url'] = $url; $container ['getfield'] = $getfield; $container ['requestMethod'] = $requestMethod; $container ['data'] = $data; $this->load->view('search_page2', $container);