2011-01-10 10 views
3

私はユーザーモデルのdelete_user()関数にあり、コメントモデルでdelete_comment()関数を使用したいとします。CodeIgniterでは、別のモデルから1つのモデルにアクセスするにはどうすればよいですか?

コメントテーブルに直接アクセスしたり、コントローラから他のモデルをロードして呼び出すことはできますが、コードをできるだけ抽象的に保つために別のモデルから1つのモデルにアクセスできるようにしたいと考えています。

これはCodeIgniterで可能ですか?

答えて

4

あなたはこの必要があるでしょう:

class User_model extends Model 
{ 
    function get_something() 
    { 
     $CI =& get_instance(); 
     $CI->load->model('profile_model'); 
     return $CI->profile_model->get_another_thing(); 
    } 
} 
0

コントローラに既に読み込まれているように、簡単にアクセスできます。

$this->some_other_model->method(); 
+0

をよろしいですか?これは私のためには機能しません。私のモデルからコントローラにコードを移しました。 – MrGlass

+0

特に動作しないものはありますか?両方のモデルをロードして使用する場合は、delete userメソッドを呼び出してから、delete commentメソッドを呼び出すことができます。これが正しいデザインであることはわかりません。 あなたがコメントを削除する必要があるユーザーを削除すると、これはおそらくあなたのモデルのほうが良いでしょう。あなたは完全なモデルコードを投稿して、ユーザーを削除してコメントを削除することができます – diagonalbatman

+0

私は関数を呼び出す前に、私のユーザーモデル内にコメントモデルをロードしました。 PHPはファイルのロードに問題はないようですが、私のページがレンダリングされない関数を試してみてください。 – MrGlass

0
function model_load_model($model_name) 
    { 
     $CI =& get_instance(); 
     $CI->load->model($model_name); 
     return $CI->$model_name; 
    } 
0

このようなあなたのモデルをロードしよう:

$this->load->model('comment_model'); 
$this->comment_model->delete_comment($userId); 
関連する問題