$this->load->view_model('user_view_model');
$recent_sign_up_user = $this->user_view_model->get_view('recent_sign_up_user');
$user_data = array();
$this->load->data_model('user_data_model');
$this->user_data_model->insert($user_data); // insert, update, delete 함수는 data_model에서 상속받음.
이런 식으로 컨트롤러에서 사용하고 싶은데..ㅋㅋ 설명이 참..어렵네요..
load->database();
}
}
class View_model extends FX_Model {
public function __construct() {
parent::__construct();
$this->load->database();
}
}
class Data_model extends FX_Model {
public function __construct() {
parent::__construct();
$this->load->database();
}
}
?>
이 방법을 써도 괜찮은 걸까요??
class User_view_model extends View_model {
public function __construct() {
parent::__construct();
$this->load->database();
}
public function test() {
//$this->db->trans_begin();
$this->db->set('user_id', 'test');
$this->db->insert('user');
$value = $this->test2();
return $value;
}
public function test2() {
return 'a';
}
}
?>
정상 작동은 합니다 ㅎㅎㅎ
$this->load->model('user_view_model');
$this->load->model('user_data_model');
user_view_model 이나 user_data_model 은 클래스 명이므로 로드 클래스를 새로 확장하는것은 의미가 없습니다.
class User_view_model extends MY_View_model {
}
class User_data_model extends MY_Data_model {
}
이렇게 선언하고 $this->load->model()로 로드 하면 됩니다.
접두어는 FX이고요.
FX_Model은 이렇게 구현
<?php
class FX_Model extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database();
}
}
abstract class View_model extends FX_Model {
abstract protected function get_view($view_name, $where_array, $order_array, $offset_limit_array);
public function __construct() {
parent::__construct();
$this->load->database();
}
}
abstract class Data_model extends FX_Model {
abstract protected function insert($data_array);
abstract protected function update($where_array, $data_array);
abstract protected function delete($where_array);
public function __construct() {
parent::__construct();
$this->load->database();
}
}
?>
User_view_model.php 는
<?php
class User_view_model extends View_model {
public function __construct() {
parent::__construct();
$this->load->database();
}
public function get_view($view_name, $where_array, $order_array, $offset_limit_array) {
//DB 모든 select 부분을 view 로 구현해둠
}
}
?>
User 컨트롤러는
<?php
class User extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('url');
//$this->load->library('session');
}
public function index() {
$this->load->model('user_view_model');
$user_list = $this->user_view_model->get_view('user', null, null, null);
}
}
이렇게 만들어봤어요.
그냥 딱히 이유는 없지만..ㅠ 뭔가 작업하기 좋지 않을까 해서 이런식으로 구성해봤어요 ㅠ
필요한 class들을 system을 건들지 않고 정의 하려면 application/core/MY_Model.php 에 작성하면 됩니다.