2012-03-20 82 views
0

好吧,在我的Codeigniter项目中,我将一个多维数组传递给我的视图。我遇到的问题是访问数组中的数据。我使用print_r和var_dump来查看数组,并且它正在正确地传递给视图,但我最难访问其中的数据!我收到此错误消息,“尝试访问非对象的参数”。有什么建议么?!使用Codeigniter访问多维数组

这里是控制器: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); 
      } 

     } 
    ?> 

这里是recieving数据视图:profile_view.php

<!DOCTYPE html> 
<html> 
    <body> 
     <?php 
      print_r($users[0]); 
     ?> 
    </body> 
</html> 

我print_r的语句的输出是:

Array([hometown] => Las Vegas [email] => [email protected] [university] => UC Berkley [first_name] => Pete [last_name] => Smith [date] => 1992)1

+0

如果你需要echo,那么使用print_r($ user,true);并粘贴内容以获得更好的答案 – 2012-03-20 04:28:15

+0

你能展示你的用户数组的样子吗? – Avinash 2012-03-20 04:29:34

+0

我刚刚在我的问题中添加了输出,并简化了profile.php页面以忽略一些无关紧要的功能!我希望这可以帮助你理解这个问题! – 2012-03-20 04:33:41

回答

1

基于您的代码:

$this->load->view('profile_view', $user); 

这意味着您提供阵列$user作为视图数据。因此,在视图$user不再存在。

您只能使用它在视图元素:

<?php 
    echo $hometown; 
    echo $email; 
?> 

如果你想使用$user阵列中的观点,在控制器使用该视图加载代码:

$this->load->view('profile_view', array('user' => $user)); 

你可以阅读更多关于Views in CodeIgniter

+0

好吧我改变了用户的子阵列,而不是用户来区分父数组和子数组,但我仍然得到相同的恼人的错误... – 2012-03-20 04:41:01

+0

什么行产生该错误?通常是因为'$ blabla-> data':你试图访问参数'$ data'。但是,'%blabla'不是一个对象。 – ariefbayu 2012-03-20 04:43:40