Хорошо. В моем проекте Codeigniter я передаю многомерный массив в мое представление. Проблема, с которой я сталкиваюсь, – это доступ к данным в массиве. Я использую print_r и var_dump, чтобы увидеть массив, и он правильно передается в представление, но у меня труднее всего получить доступ к данным в нем! Я получаю это сообщение об ошибке «Попытка доступа к параметру не-объекта». Какие-либо предложения?!
Вот контроллер: profile.php
<?php class Profile extends CI_Controller { public function __construct(){ parent::__construct(); $this->load->library('session'); //Get user data $this->load->model('user_model'); } public function user_lookup(){ //get usering users data $email = $this->session->userdata('email'); //get profile users data $username = $this->uri->segment(2,0); $user = array( 'users' => $this->user_model->getUserData($email), 'profile' => $this->user_model->getUserDataWithUsername($username) ); $this->load->view('profile_view', $user); } } ?>
И вот представление, которое получает данные: profile_view.php
<!DOCTYPE html> <html> <body> <?php print_r($users[0]); ?> </body> </html>
Вывод моей инструкции print_r:
Массив ([родной город] => Лас-Вегас [email] => johnmy@gmail.com [университет] => UC Berkley [first_name] => Пит [last_name] => Смит [дата] => 1992) 1
Основываясь на вашем коде:
$this->load->view('profile_view', $user);
Это означает, что вы предоставляете массив $user
качестве данных просмотра. Поэтому на вид $user
больше не существует.
Вы можете использовать только этот элемент:
<?php echo $hometown; echo $email; ?>
Если вы хотите использовать $user
array в поле зрения, используйте этот код загрузки вида в контроллере:
$this->load->view('profile_view', array('user' => $user ));
Вы можете больше узнать о Views в CodeIgniter .