2012-09-17 10 views
5

私はCodeIgniterで「結果オブジェクトクラス」を整理する適切な方法を探しています。 documentationで説明したようにこれらのクラスはusualyモデルで使用されていますCodeigniterでの結果オブジェクトクラスの配置場所とロード方法は?

あなたはまた、(結果文字列を渡すことができます)各結果オブジェクトのための インスタンス化するクラスを表す(注意:このクラスはロードされなければなりません)

$query = $this->db->query("SELECT * FROM users;"); 

foreach ($query->result('User') as $row) 
{ 
    echo $row->name; // call attributes 
    echo $row->reverse_name(); // or methods defined on the 'User' class 
} 

ここで、「ユーザー」クラスはどこに配置すればいいですか、それを読み込む方法はありますか?

答えて

2

ライブラリを使用してみてください。その後、アプリケーション/ライブラリフォルダ内

置き、あなたのクラスは、それをロードするためのローダを使用します。

$this->load->library('user'); 
+0

これは、ユーザークラスの新しいインスタンスを作成し、その空のオブジェクトをメモリに入れたくないためです。もちろん、結果オブジェクトクラスはライブラリではありません。 – sasa

+0

クラスを含むPHPファイルを読み込むために、$ this-> load file()を使用してください –

0

ないまさにあなたが求めているが、私は多くの場合でMY_Modelを使用します。

public function merge_object(&$object, $data){ 

    if (is_object($data)) { 
     $data = get_object_vars($data); 
    } 
    if (!empty($data)) { 
     foreach ($data as $property => $value) { 
      if (!property_exists($object, $property)) { 
       $object->$property = $value; 
      } 
     } 
    } 
    return $object; 
} 

を呼び出してから$ this-> merge_object($ this、$ data)を呼び出します。

ここでモデル関数を呼び出すと、モデルクラスのインスタンスも返されるため、そのメソッドにアクセスできます。基本的にはあなたがやろうとしていることです。

関連する問題