2013-09-27 100 views
0

我想從模型傳遞數據到控制器,然後查看 這段代碼解釋它。錯誤從控制器傳遞到codeigniter中的視圖?

模型

public function get_all_college_name() { 
    $q = $this -> db -> query('select * from college'); 
    if ($q -> num_rows() > 0) { 
     foreach ($q->result() as $row) { 
      $data[] = $row; 
     } 
     return $data; 
    } 
} 

的控制器編碼

public function index() { 
    $this -> load -> model('retriver_data'); 
    $data['rows'] = $this -> retriver_data -> get_all_college_name(); 

    $this -> load -> view('home', $data); 

    //$this -> view_something('home', $data); 
} 

視圖代碼

<body> 
    <?php 
    foreach ($rows as $r) { 
     echo $r -> name; 
    } 
    ?> 
</body> 

出現錯誤

甲PHP錯誤遇到

嚴重性:警告

消息:()提供的foreach無效參數

文件名:視圖/家庭。 php

行號:8

+0

哪裏是'$ rows'之前是假的界定? –

+0

@RUJordan $ data ['rows']是查詢的工作?如果查詢失敗,請確保你返回一個空數組 – exussum

+0

在發送到查看之前做var_dump($ data) 可能它是不正確的格式 –

回答

0

對於CI,在我的模型通常用:

if ($query->num_rows() == 0) 
    return FALSE; 

return $query->result_array(); 

那麼如果你的觀點,你會檢查陣列顯示

<body> 
    <?php if (! $rows) : ?> 
     no data 
    <?php else: ?> 
     <?php foreach ($rows as $row): ?> 
      <?php print $row->name; ?> 
     <?php endforeach;?> 
    <?php endif; ?> 
</body> 
+1

建議您在控制器中執行If結果檢查 - 然後調用相應的視圖。 – cartalot

相關問題