0

私はまだCIにかなり慣れていません。私の友人の一人が、それを調べ始めるように私に言いました。PHP で行ったばかりのサイトを CI に変換しようとしています。しかし、私は問題に遭遇し続けます。

私が試みるすべてのグーグル検索は、結果を見つけることができないようです。

同じページに必要な 2 つの異なるクエリがあります。

私のモデル

class Fittv_model extends CI_Model
function __construct()
{
    parent::__construct();
    $this->load->database();
}

function get_fittv_chain()
{
    //get all entry
    $club_id = $_GET['club_id'];
    $query = $this->db->query("SELECT * FROM company_details WHERE id = '$club_id'");
    return $query->result();
}

function get_last_installs()
{
    //this will get the last 3 installs
    $club_id = $_GET['club_id'];
    $last_installs = $this->db->query("SELECT * FROM fit_tv_locations WHERE club_id = '$club_id' ORDER BY date DESC LIMIT 3");
    return $last_installs->result();
}

私のコントローラー。

class Fittv extends CI_Controller {
    function index()
    {
        $this->load->model('fittv_model');
        ##$data['query'] = $this->fittv_model->get_fittv_chain();
        $data = $this->fittv_model->get_fittv_chain();
        $data = $this->fittv_model->get_last_installs();
        $this->load->helper('url');
        $this->load->view('fittv/index', $data);
    }
}

問題は、2 つの異なるモデルをビュー ページに表示する方法がわからないことです。

私の現在のエラーは次のとおりです。

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: last_installs
Filename: fittv/index.php
Line Number: 23

次に、データを表示しようとしている下の簡単なビューを次に示します

<?php
    foreach ($last_installs->result() as $row)
    {
        echo $row->location_name;
    }
?>
4

2 に答える 2

1

モデルに構文エラーがあります。また、データベース クエリを実行するには、 CodeIgniter Active Record Method Class を使用することをお勧めします。

class Fittv_model extends CI_Model
{    
  function __construct()
  {
    parent::__construct();
    $this->load->database();
  }


  function get_fittv_chain()
  {
   $tablename = 'yourTable';
   //get all entry
   $club_id = $_GET['club_id'];
   $query = $this->db->get_where($tablename, array('id' => $club_id));
   return $query->result();
  }

  function get_last_installs()
  {
  //this will get the last 3 installs
    $club_id = $_GET['club_id'];
    $last_installs = $this->db->query("SELECT * FROM fit_tv_locations WHERE club_id =              '$club_id' ORDER BY date DESC LIMIT 3");  //Convert this also
  return $last_installs->result();
   } 
}

また、コントローラーからビューに連想配列を渡す必要があります。

class Fittv extends CI_Controller {

function index()
{
$this->load->model('fittv_model');
##$data['query'] = $this->fittv_model->get_fittv_chain();
$data['chain'] = $this->fittv_model->get_fittv_chain();
$data['install'] = $this->fittv_model->get_last_installs();
$this->load->helper('url');
$this->load->view('fittv/index', $data);

} }

ビューでは、変数名$chain および $installでデータを使用できます (データ配列に指定したキーはビュー内の変数になります)。

于 2013-06-11T05:33:53.270 に答える
1

associative array値を割り当てるために使用する必要があります

function index()
{
    $this->load->model('fittv_model');
    ##$data['query'] = $this->fittv_model->get_fittv_chain();
    $data['chain'] = $this->fittv_model->get_fittv_chain();
    $data['installs'] = $this->fittv_model->get_last_installs();
    $this->load->helper('url');
    $this->load->view('fittv/index', $data);
}

そして、ビューページの使用$chain$installs変数で。

Codeigniter ビュー

于 2013-06-11T05:21:48.240 に答える