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);

データは、ビュー読み込み関数の 2 番目のパラメーターの配列またはオブジェクトを介して、コントローラーからビューに渡されます。配列を使用した例を次に示します。

$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 に答える