0

誰かが私を助けてくれますか?私は CI が初めてで、何が間違っているのかわかりません。

私はこのようなコントローラを持っています

主要

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class main extends CI_Controller {
 public function index() {
     $this->home();
 }

 public function home() {
    $this->load->helper('url');
    $this->load->model("get_db");
    $data['results']=$this->get_db->getAll();
    $this->load->view("view_home", $data);
 }
}

そしてモデルget_dbはこんな感じ

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class get_db extends CI_Model {
        public function getAll() {
        $query=$this->db->query("SELECT * from tekstovi");
        return $query->result();
    }
}

このような奇妙なエラーが発生しました

**A PHP Error was encountered
Severity: Notice
Message: Undefined property: main::$db
Filename: core/Model.php
Line Number: 51**

何を修正すればよいですか?

4

3 に答える 3

1

コントローラーとモデルに __construct() を追加する必要があります。以下を試してください。

あなたのコントローラー

class main extends CI_Controller 
{
    function __construct()
    {
        parent::__construct();
    }

public function index() 
{
     $this->home();
}

public function home() 
{
    $this->load->helper('url');
    $this->load->model("get_db");
    $data['results']=$this->get_db->getAll();
    $this->load->view("view_home", $data);
   }

 }

あなたのモデル。

class Get_db extends CI_Model
{
    function __construct()
    {
    parent::__construct();

    }

    // here is your code
    public function getAll() {
        $query=$this->db->query("SELECT * from tekstovi");
        return $query->result();
    }
}
于 2013-06-12T12:50:12.203 に答える
1
// Location: application/controllers/main.php
class Main extends CI_Controller {

    public function index() { 

        $this->home();

    }

    public function home() { 

        $this->load->model('home_model');

        $data['results'] = $this->home_model->getAll();

        $this->load->view("view_home", $data);

    }
}

// Location: application/models/home_model.php
class Home_model extends CI_Model {

public function getAll() {

        $query=$this->db->query("SELECT * from tekstovi");

        return $query->result();

    }

}

CodeIgniter の User Guideをご覧になると非常に役立つと思います。

編集:これらのことを正しく行っても問題が解決しない場合は、コア ファイルが変更されていないことを確認してください。そうである場合は、アプリケーションを再インストール (ファイルのダウンロードと更新) すると、すべてが機能するはずです。

于 2013-06-12T12:03:36.457 に答える
0

@nevermind が指摘したように、クラスの命名を修正する必要があります。

クラス名は、最初の文字を大文字にし、残りを小文字にする必要があります。クラスが基本 Model クラスを拡張していることを確認してください。

ファイル名は、クラス名の小文字バージョンになります。

次の問題は、モデルにコンストラクターがないことです。次のコードをモデルに追加します。

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

モデルの機能が であることは問題ありませんpublic

于 2013-06-12T13:12:58.883 に答える