1

CodeIgniter を使用しており、モデルのメンバー変数を設定したいと考えています。

コードの書き方は次のとおりです。

class Person extends CI_Model {
    var $id = '';

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

    function set_id($id = '')
    {
        $this->id = $id;
    }
}

次に、モデルを呼び出してメンバー変数を次のように設定することを期待します。

$person1 = $this->load->model('Person');
$person1->set_id(5000);

しかし、これは次のようになります:

Fatal error: Call to a member function set_id() on a non-object

ここでは、PHP または CodeIgniter 言語のセマンティックが明らかに欠落しています。助言がありますか?

4

2 に答える 2

3

これを変える

$person1 = $this->load->model('Person');
$person1->set_id(5000);

$this->load->model('Person');
$this->Person->set_id(5000);

ドキュメントから

編集

単一モデルの異なるインスタンス

$this->load->model('Person', 'Person1');
$this->Person1->set_id(5000);

$this->load->model('Person', 'Person2');
$this->Person2->set_id(5000);
于 2013-04-30T10:22:22.367 に答える
2

クラスと同じ名前のオブジェクトを使用してモデル関数にアクセスする必要があります..

ロードしたら、クラスと同じ名前のオブジェクトを使用してモデル関数にアクセスします: $this->Model_name->function();

そのはず..

$this->load->model('Person');
$this->Person->set_id(5000);

また

$this->load->model('Person', 'somename');
$this->somename->set_id(5000);

ここでドキュメントを参照できます

于 2013-04-30T10:21:42.130 に答える