2012-12-12 134 views
-1

我的控制器沒有通過$data到我的視圖,我不知道爲什麼不。我正在重複使用以前項目的代碼,這些代碼運行良好,我當然明白如何使用$數據傳遞的想法。但是也許我在複製代碼時漏掉了一些東西?

爲了測試目的,我在裏面放入了變量$data['hello']。正如你所看到的從輸出$hello甚至沒有通過。 if失敗,else代碼正確運行,這意味着正在加載視圖文件本身。

控制器:

function users() { 
    $data['title'] = 'users'; 
    $data['users'] = $this->main_m->get_users(); 
    $data['hello'] = 5; 
    $this->load->view('users', $data); 
} 

檢視:

<?php 
echo $hello; 
if ($users->num_rows != 0) { 
    foreach ($users->result() as $user) { 
    } 
} else { 
    echo "No users."; 
} 

輸出(刪節):

A PHP Error was encountered 
Message: Undefined variable: hello 
Line Number: 2 
A PHP Error was encountered 
Message: Undefined variable: users 
Line Number: 3 
A PHP Error was encountered 
Message: Trying to get property of non-object 
Line Number: 3 

No users. 

編輯:上請求的詳細信息: 型號:

public function get_users($amount = 0, $offset = 0) { 
    $this->db->from('users'); 
    $this->db->order_by('l_name', 'desc'); 
    if ($amount != 0) 
     $this->db->limit($amount, $offset); 
    return $this->db->get(); 
} 
+0

什麼是您的模型函數get_users() – iijb

+0

在上面的編輯中添加。 – Chro

+0

你確定你在'users.php'視圖文件中的視圖中運行代碼嗎? –

回答

0

我總是做這樣的 模型改變爲

$query = $this->db->get(); 
return $query->result(); 

,並鑑於

if (count($users)> 0) { 
foreach ($users as $user) { 
echo $user['name']; 
} 
} else { 
echo "No users."; 
} 

希望這有助於

問候

iijb

0

在將一些數據發送到$data陣列之前,只需編寫$data = array();

function users() { 
$data = array(); 
$data['title'] = 'users'; 
$data['users'] = $this->main_m->get_users(); 
$data['hello'] = 5; 
$this->load->view('users', $data); 
} 
0

我認爲你可以用一些簡單的var_dump()檢查來解決你的問題。

  1. 通過var_dump()來檢查模型中出現什麼$ data ['users'] - 這是一個對象嗎? var_dump()$ data ['users'] - > result()會發生什麼?
  2. 然後,視圖中的var_dump()$數據 - 它是否包含所有部分?

事情是,甚至向我們展示你的模型函數並不能證明你得到了真正的數據結果。檢查一下。你的代碼一目瞭然,所以我不認爲這是問題存在的地方。

0

有一些非常基本的錯誤。因此,請離開該控制器並進行一次完整性檢查。首先確認您的歡迎視圖正在工作。如果是去歡迎控制器,並把這個在索引方法

$data['here'] = 'we are here' ; 
    $this->load->view('welcome_message', $data); 

然後在某個地方的歡迎。php查看文件

<?php echo $here ?> 

您不需要設置:$ data = array(); 然而,有些人建議,因爲即使你不創建任何數據變量,你不會得到一個錯誤,如果它在視圖中調用$ this-> load-> view('welcome_message',$ data);

最後我建議看這個

function users() { 
    $data['title'] = 'users'; 
    $data['users'] = $this->main_m->get_users(); 
    $data['hello'] = 5; 
    $this->load->view('users', $data); 
} 

讓我們看看你有方法稱爲用戶,返回被叫用戶的對象,一個叫做用戶視圖 - 這可能會比較混亂! :-)

相關問題