0

アプリケーションの core/MY_Controller.php を拡張可能に変更しました。mysql からデータを取得する前に、メッセージ: 未定義の変数: レコードを取得しました。データを再度取得するにはどうすればよいですか? MY_Controller.php :

class MY_Controller extends CI_Controller {

  protected $data = array();

  function __construct() {
    parent::__construct();
  }

  function render_page($view) {
    //do this to don't repeat in all controllers...
    $this->load->view('templates/header', $this->data);
    //menu_data must contain the structure of the menu...
    //you can populate it from database or helper

    $this->load->view($view, $this->data);
    $this->load->view('templates/footer', $this->data);
  }

私のホームコントローラー:

class Home extends MY_Controller {
         function __construct() {
    parent::__construct();
  }
public function view($page = 'home')
    {
     $this->load->helper('text');
        $this->data['records']= $this->services_model->getAll();
        if ( ! file_exists('application/views/pages/'.$page.'.php'))
        {
            // Whoops, we don't have a page for that!
            show_404();
        }

        $data['title'] = ucfirst($page); // Capitalize the first letter


        $this->render_page('pages/'.$page,$this->data);


    }

Services_model :

class Services_model extends CI_Model {


    function getAll() {
        $q = $this->db->get('services');
        if($q->num_rows() > 0){
        foreach ($q->result() as $row)
        {
            $data[] = $row;

            }
        return $data;
    }
    }

これは、home.phpビューでエラーが発生する場所です:

<ul class="blog-medium">
<?php foreach($records->result() as $row): ?>
    <li><h1><a href="./post.html"><?php echo $row->title; ?></a></h1></li>
<?php endforeach ?>

エラーメッセージは次のように表示されます: メッセージ: 未定義の変数: レコード

4

2 に答える 2

1

$data['records']コントローラーでは、設定する必要があるときに設定しているように見えます$this->data['records']

于 2012-08-02T09:00:19.703 に答える
0

解決策を見つけました。私のホームコントローラーでは、ビューを次のように使用していました。

$this->render_page('pages/'.$page,$this->data);

しかし、私はここでそれを使用する必要があります:

class Home extends MY_Controller {
         function __construct() {
    parent::__construct();
  }

        public function view($page = 'home')
        {
         $this->load->helper('text');
            $this->data['records']= $this->services_model->getAll();
            if ( ! file_exists('application/views/pages/'.$page.'.php'))
            {
                // Whoops, we don't have a page for that!
                show_404();
            }

            $data['title'] = ucfirst($page); // Capitalize the first letter


            $this->render_page('pages/'.$page,$data);


        }

理由はわかりませんが、以前にこれを試しました。作りませんでしたが、今は動いています。

于 2012-08-02T13:07:23.543 に答える