제목 | Codeigniter ORM - easyorm | ||
---|---|---|---|
글쓴이 | db | 작성시각 | 2015/05/05 14:51:06 |
|
|||
Codeigniter 에서 ORM를 쓸 수 있도록 하는 코드를 공개합니다. 기존 Datamapper 가 너무 복잡하여 좀 쉽게 썻으면 해서 만들어봤습니다. 자바 JPA 영향을 좀 받아서 어디선가 본듯한 메소드명이 있습니다.;; 코드는 다음주소에서 다음받으실 수 있어요 https://github.com/gahea/easyorm 반응좋으면 디비를 검색해서 Model을 자동화 하는 것도 공개하겠습니다. Model class Usermodel extends MY_Model{ var $id = 0; var $screenname = ''; var $password = ''; var $hobbies = array(); var $regDate = ''; var $lastDate = ''; var $regIp = ''; // 테이블명과 키컬럼을 지정 // _(언더스코어)로 시작되는 컬럼은 ORM에서 무시함 var $_key = 'id'; var $_table = 'user'; // 데이터가 저장되기전 처리 public function prepersist(){ $this->regDate = 'NOW()'; $this->regIp = $this->input->ip_addresss(); } // 데이터가 업데이트 되기 전 처리 public function preupdate(){ $this->lastDate = 'NOW()'; } // 데이터가 삭제되기 전 처리 public function predelete(){ log('삭제됨 :' . date('y-m-d h:i:s')' } } Controller class Controll extends CI_Controller{ public function __construct(){ $this->load->model('usermodel'); } public function inAction(){ // 모델에 포스트로 넘어온값 바인딩 // 2번째 파라미터는 바인딩을 제외하는 컬럼을 지정 (id, 아이피등) $this->usermodel->initialize($this->input->post(), array('id')); // 저장하기 $this->usermodel->save(); redirect('/user/'.$this->usermodel->id); } public function view($id){ // 키값으로 데이터 조회 // 조회후 값이 $this->usermodel에 바인딩 됨 $this->usermodel->get($id); $this->load->view('view',array('user' => $this->usermodel); } public function upAction(){ $this->usermodel->get($this->input->post('id')); $this->usermodel->initialize($this->input->post(), array('id')); // 업데이트 // 업데이트 preupdate() 함수를 체크하여 사전 처리 진행 // 2번째 파라미터는 업데이트를 할 컬럼을 지정 (지정안하면 전체 컬럼 업데이트) $this->usermodel->update(array('password')); } public function deleteAction($id){ // 데이터 호출하기 $this->usermodel->get($id); // 객체를 삭제하기 $this->usermodel->delete(); redirect('user'); } } |
|||
다음글 | 폼메일이나 데이타입출력시스템을 쉽게 만드는 폼빌더 (3) | ||
이전글 | 슘님의 커스텀 페이지네이션 라이브러리 CI ver. 3... (4) | ||
방문넷
/
2015/05/06 01:51:07 /
추천
0
|
db
/
2015/05/06 02:58:54 /
추천
0
ci 2.0 나오면서 만든 코드인데 여지것 그냥 쓰고 있는게 한심해서 공개했습니다.
도움되었다니 몸들바를 모르겠습니다. |
한대승(불의회상)
/
2015/05/06 09:15:13 /
추천
0
datamapper가 복잡해서 저도 사용 안하는데 이번 기회에 ORM에 접근을 해 봐야 겠네요.
좋은 정보 감사합니다. |
dasider41
/
2016/07/04 12:07:59 /
추천
0
최근에 찾아보니 https://github.com/illuminate/database 도 있더군요 composer로 설치시면 되고, 사용법은 larvel document를 참고하시면 됩니다. |
좋은 코드를 공개해주셔서 한결 맘이 가벼워진 거같습니다 일단 추천드립니다!