3

私は OOP と CodeIgniter の初心者です。モデルのメソッドを分離するときは、コントローラーで呼び出しました。しかし今、私はモデルでそれを呼び出す別の方法を見つけました。以下の方法を使用するのが良いかどうか:

モデル:

function q_insert($id) {
  //get value from q_select model
  $s = $this->q_select($id);
  $data = array(
           'User' => $s->row()->Name;
         }
  $this->db->insert('tblPOS', $data);
}

function qu_select($id) {
 $this->db->select('Name, ID');
 $this->db->from('tblUser');
 $this->db->where('ID', $id);
}

コントローラ:

function create_pos($id) {
  $this->model->q_insert($id);
}
4

2 に答える 2

2

あなたの使用法は問題ありません。$this->db オブジェクトに値を設定し、DB クラスの別の値のセットを持つ別のメソッドを呼び出す場合などの場合、これは悪い習慣になります。これにより、問題が発生する可能性があります

悪い習慣

function get_users(){
$this->db->select('name');
$this->db->where('a', $a);
$children = $this->_get_children();
$this->db->where_not_in($children);
$this->db->get('parents');
}
于 2013-09-20T09:39:58.040 に答える
1

モデル自体からコントローラーのリクエストを管理する場合は、まったく問題ありません。

たとえば、レコードを保存する場合を考えてみましょう。

送信されたフォーム データに (非表示の) id 値がある場合は、レコードを更新しています。それ以外の場合は、新しいレコードを追加しています。

送信されたすべてのデータを使用してフォーム送信後にコントローラーから関数を呼び出すと、データを追加または更新しているかどうかをモデル自体で確認できます。

それに応じて、挿入または更新関数を呼び出すことができます。

あなたのアプローチ/コンセプトはまったく問題なく、大歓迎です。

于 2013-09-20T05:36:09.000 に答える