私はユーザーモデルのdelete_user()関数にあり、コメントモデルでdelete_comment()関数を使用したいとします。CodeIgniterでは、別のモデルから1つのモデルにアクセスするにはどうすればよいですか?
コメントテーブルに直接アクセスしたり、コントローラから他のモデルをロードして呼び出すことはできますが、コードをできるだけ抽象的に保つために別のモデルから1つのモデルにアクセスできるようにしたいと考えています。
これはCodeIgniterで可能ですか?
私はユーザーモデルのdelete_user()関数にあり、コメントモデルでdelete_comment()関数を使用したいとします。CodeIgniterでは、別のモデルから1つのモデルにアクセスするにはどうすればよいですか?
コメントテーブルに直接アクセスしたり、コントローラから他のモデルをロードして呼び出すことはできますが、コードをできるだけ抽象的に保つために別のモデルから1つのモデルにアクセスできるようにしたいと考えています。
これはCodeIgniterで可能ですか?
あなたはこの必要があるでしょう:
class User_model extends Model
{
function get_something()
{
$CI =& get_instance();
$CI->load->model('profile_model');
return $CI->profile_model->get_another_thing();
}
}
コントローラに既に読み込まれているように、簡単にアクセスできます。
$this->some_other_model->method();
function model_load_model($model_name)
{
$CI =& get_instance();
$CI->load->model($model_name);
return $CI->$model_name;
}
このようなあなたのモデルをロードしよう:
$this->load->model('comment_model');
$this->comment_model->delete_comment($userId);
をよろしいですか?これは私のためには機能しません。私のモデルからコントローラにコードを移しました。 – MrGlass
特に動作しないものはありますか?両方のモデルをロードして使用する場合は、delete userメソッドを呼び出してから、delete commentメソッドを呼び出すことができます。これが正しいデザインであることはわかりません。 あなたがコメントを削除する必要があるユーザーを削除すると、これはおそらくあなたのモデルのほうが良いでしょう。あなたは完全なモデルコードを投稿して、ユーザーを削除してコメントを削除することができます – diagonalbatman
私は関数を呼び出す前に、私のユーザーモデル内にコメントモデルをロードしました。 PHPはファイルのロードに問題はないようですが、私のページがレンダリングされない関数を試してみてください。 – MrGlass