2

これは、CodeIgniterでコーディングする最初の試みです。問題は、データベースからデータを取得できないことです。スローされるエラーは次のとおりです。

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Site::$db

Filename: core/Model.php

Line Number: 51

その行で何を変更すればよいか理解できましたcore/model.php

そして、これは別のエラーです:

 Fatal error: Call to a member function query() on a non-object in C:\wamp\www\CI_one\application\models\site_model.php on line 9

コントローラ

<?php
    class Site extends CI_Controller {
        function datta(){
            $this->load->model('site_model');
            $get = $this->site_model->getValues();
            $data['get'] = $get;
            $this->load->view('data3',$data);
        }
    }

モデル

<?php
    class site_model extends CI_Model{

        function index(){
            echo "default index";
        }

        function getValues(){
            $query = $this->db->query("select * from nav_menu");

            if ($query->num_rows() > 0)
            {
               foreach ($query->result() as $row)
               {
                  echo $row->c1;
                  echo $row->m2;
                  echo $row->d3;
               }
            }
            return array(
                "name" => "nameless",
                "form" => "formless",
                "age"  => "ageless");
        }
    }

でデータベースパラメータを設定しましたapp/config/database.php

これを機能させるにはどうすればよいですか?


自分で解決しました。結果を得るために、次のようにワイプして再コーディングしました...

コントローラ

<?php
    class Site extends CI_Controller {
        function datta(){

            $this->load->database();
            $this->load->model('site_model');
            $get = $this->site_model->getValues();
            $data['get'] = $get;
            $this->load->view('data3',$data);
        }
    }

としてモデル化

<?php
    class site_model extends CI_Model{

        function index(){
            echo "default index";
        }

        function getValues(){
            $query = $this->db->query("select * from nav_menu");

            if ($query->num_rows() > 0)
            {
               foreach ($query->result() as $row)
               {
                  echo $row->c1;
                  echo $row->m2;
                  echo $row->d3;
               }
            }
            return array(
                "name" => "nameless",
                "form" => "formless",
                "age"  => "ageless");
        }
    }
4

3 に答える 3

0

CodeIgniter コントローラーにコンストラクターを次のように記述してください。

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

これに加えて:

最初にデータベース ライブラリをロードする必要があります。の

autoload.php:

  $autoload[‘libraries’] = array(‘database’);

または、コントローラーコンストラクターで次のようにします。

  $this->load->database();

それが役立つことを願っています!

于 2013-03-20T05:17:29.190 に答える