0

嗨,我正在按照教程学习 NetTuts 上的CodeIgniter

我有一个模型、一个视图和一个控制器。

该模型:

class Data_model extends CI_Model{
  function getAll(){
      $data = array();

      $q = $this->db->query("SELECT * FROM data");
      if($q->num_row() > 0){
           foreach($q->result() as $row){
                $data[] = $row;
           }
           return $data;
      }
 }

}

风景:

<html>
 <head>
      <title></title>
 </head>

 <body>
      <p>View loaded</p>
      <?php 
           foreach ($rows as $r){
                echo '<h1>',$r->title,'</h1>';
           }
      ?>
 </body>

控制器:

class Site extends CI_Controller {

 function index(){
      $this->load->model('data_model');
      $data['rows'] = $this->data_model->getAll();

      $this->load->view('home');
 }
}

问题是我没有收到错误,而只是一个空页面。我究竟做错了什么?感觉就像我在做教程中的所有事情?

4

4 回答 4

5

在控制器中:

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

型号建议:

function getAll(){
    $data = array();
    $q = $this->db->query("SELECT * FROM data");
    if($q->num_row() > 0){
       $data    = $q->result(); //result_array() will fetch as arrays and not objects
       return $data;
    }
}

试试这个,因为它已经给出了Paul

echo '<h1>' . $r->title . '</h1>';

转到您的 root/index.php 并更改environmentdeveloping查看 php 生成的错误。

于 2013-09-30T08:20:22.243 回答
3

在模型中,

$q->num_row()

需要改为

$q->num_rows()

此外,您还需要引用特定列

$data[] = $row->column_name;

在您的控制器中,逗号需要替换为句点。逗号不是正确的语法

foreach ($rows as $r) {
    echo '<h1>'.$r->title.'</h1>';
}

最后,您需要通过执行将 $data 变量传递给视图

$this->load->view('home', $data);
于 2013-09-30T08:25:35.117 回答
2

另外,我认为在您的视图中您必须进行以下更改:

echo '<h1>' . $r->title . '</h1>';
于 2013-09-30T08:23:40.297 回答
0

这确实有效:

class Data_model extends CI_Model{

 function getAll(){
 $data = array();
 $q = $this->db->query("SELECT * FROM data");


   $data= $q->result(); //result_array() will fetch as arrays and not objects
   return $data;


 }
}

但这不会:

class Data_model extends CI_Model{
 function getAll(){
 $data = array();
 $q = $this->db->query("SELECT * FROM data");

 if($q->num_row() > 0){
   $data= $q->result(); //result_array() will fetch as arrays and not objects
   return $data;
}

 }
}

但是为什么会这样,这样做是否正确(这甚至是一个答案),删除这个 IF 语句会产生什么后果?

于 2013-09-30T09:38:26.940 回答