0

さて、私は私のコントローラーに機能する機能を持っています。ただし、コントローラーでデータベースを呼び出すべきではありません(私たち全員が知っているように)。私は通常、モデルからコントローラーに情報を簡単に移行できますが、これには苦労しています。モデルのバージョンも共有しません...これをモデルにどのように書き込みますか?

    $this -> db -> select('title, price, number_sites, number_entries, white_label'); 
    $query = $this -> db -> get('pricing', 3); // limit 3 rows

    $row1 = $query->row(0); // 0 grabs first row in table: Package 1        
    $data['row1'] = $row1;

    $row2 = $query->row(1); // 1 grabs second row in table: Package 2        
    $data['row2'] = $row2;

    $row3 = $query->row(2); // 2 grabs third row in table: Package 3        
    $data['row3'] = $row3;
4

3 に答える 3

2

呼び出したい関数のモデルにコピーして貼り付けるだけです。

function dbstuff(){
    $this -> db -> select('title, price, number_sites, number_entries, white_label'); 
    $query = $this -> db -> get('pricing', 3); // limit 3 rows

    $row1 = $query->row(0); // 0 grabs first row in table: Package 1        
    $data['row1'] = $row1;

    $row2 = $query->row(1); // 1 grabs second row in table: Package 2        
    $data['row2'] = $row2;

    $row3 = $query->row(2); // 2 grabs third row in table: Package 3        
    $data['row3'] = $row3;
    return $data;
}

次に、コントローラーで:

$this->load->model('MyModel');
$data=$this->MyModel->dbstuff();
$this->load->view('view',$data);
于 2012-11-08T19:36:54.893 に答える
0

データベースから選択するクエリをラップし、モデルクラスのインスタンスを返す静的メソッドを含むモデルクラスを作成することをお勧めします。

例えば:

class MyModelClass {

// Your class code here

static function findByPricing($price){

    $output = array();

   //run your query here using your db handler

   foreach($resultingrows as $row){

       $object = new MyModelClass();
       $object->setAttributeOne($row['attribute_one');
       $object->setAttributeTwo($row['attribute_two');
       $object->setAttributeThree($row['attribute_three');

       $output[] = $object;

   }

   return $output;

}


}

次に、コントローラーから次のようにします。

 $objects = MyModelClass::findByPricing(3);
于 2012-11-08T19:43:22.327 に答える
0

最初にドキュメントを参照することをお勧めします。

モデルのユーザーガイド

モデルクラスを作成するための情報を入手したら、モデルクラスを作成し、この関数をそのクラスに配置します。

public function getPricing(){
  return  $this -> db -> select('title, price, number_sites, number_entries, white_label') -> get('pricing', 3) -> result_array();
}
于 2012-11-08T19:51:58.853 に答える