0

我是 codeigniter 的新手并按照指南进行操作,但似乎遗漏了一些东西。我有一个简单的数据库,其中包含客户记录。我在 codeigniter 中的第一个目标是简单地列出我所有的客户。

这是我的控制器:

public function index()
{
    $this->load->model('HomeModel');    //loads the HomeModel model
    $data = $this->HomeModel->function1();       //loads the function (function1) from the model

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

这是我的模型:

public function function1()
{
$query = $this->db->get('work_orders');
return $query->result();

}

这是我的看法:

<table class="table table-bordered table-striped table-highlight" id="invoice-details">
    <thead>
     <tr>
      <th>Work Order ID</th>
      <th>Status</th>
      <th>Description</th>
     </tr>
    </thead>
    <?php
     foreach ($data->result() as $row);?>
      <tr class="even gradeC">
      <td><a href="/WorkOrders/viewWo/<?php  echo $row['id']; ?>">
      <?php  echo $row['id']; ?></a></td>
      <td><?php  echo $row['status']; ?></td>
      <td><?php  echo Logic\System\Lib\Helper::trunc(htmlentities($row['description']), 8); ?></td>
      </tr>
    <?php  endforeach; ?>
    </table>
4

2 回答 2

0

在你的控制器中,你必须将值作为数据数组的子数组传递。之后$data['result']你可以简单地在视图中调用它$result

控制器

$data['result'] = $this->HomeModel->function1();

并认为,

foreach ($result as $row){
 <?php  echo $row->id; ?>
..
}
于 2013-06-06T03:06:40.117 回答
0

改变模型:

public function function1()
{
    $query = $this->db->get('work_orders');
    //return $query->result();
    return $query->result_array();
}

更改控制器:

public function index()
{
    $this->load->model('HomeModel');    
    //$data = $this->HomeModel->function1(); 
    $data['result'] = $this->HomeModel->function1(); 
    $this->load->view('index', $data);
}

改变观点:

//foreach ($data->result() as $row);
    if(is_array($result)&&!empty($result))
        foreach ($result as $row);

数据通过视图加载函数的第二个参数中的数组或对象从控制器传递到视图。下面是一个使用数组的例子:

$data = array(
               'title' => 'My Title',
               'heading' => 'My Heading',
               'message' => 'My Message'
          );

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

视图:Codeigniter 用户指南

并且由于您在视图上使用数组$row['id'],因此您必须在模型上使用 result_array 来返回结果集数组:

该函数将查询结果作为纯数组返回,或者在没有结果时返回空数组。通常,您将在 foreach 循环中使用它,如下所示:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result_array() as $row)
{
   echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}

生成查询结果:Codeigniter

您可以使用$this->db->join();

$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');
$query = $this->db->get();

产生:

SELECT * FROM blogs
JOIN comments ON comments.id = blogs.id

通过活动记录类指南。 活动记录类

于 2013-06-06T03:15:17.840 回答