2012-03-20 172 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