2013-09-27 71 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

相关问题