| 제목 | 요즘 쓰고 있는 모델 기본 포맷 입니다. | ||
|---|---|---|---|
| 글쓴이 | 맥스 | 작성시각 | 2015/01/08 13:33:19 |
|
|
|||
<?php
class Model_name extends CI_Model
{
function __construct()
{
parent::__construct();
define( '_TBL', strtolower( get_called_class() ) );
}
function get_list( $param = NULL )
{
$this->db->select( "SQL_CALC_FOUND_ROWS *", false );
if( !isset( $param['page'] ) )
{
$param['page'] = 1;
}
$this->db->order_by('idx DESC');
if( isset( $param['limit'] ) )
{
$result = $this->db->get( _TBL, $param['limit'], ( ( $param['page'] - 1 ) * $param['limit'] ) );
}
else
{
$result = $this->db->get( _TBL );
}
$return['list'] = $result->result_array();
$result = $this->db->query( "SELECT FOUND_ROWS() as cnt" );
$return['count'] = $result->row( 0 )->cnt;
return $return;
}
function get_one( $idx = NULL )
{
$this->db->where( 'idx', $idx );
$result = $this->db->get( _TBL );
if( $result->num_rows() > 0 )
{
return $result->row_array();
}
else
{
return false;
}
}
function create( $param = NULL )
{
foreach( $param as $k => $v )
{
$this->db->set( $k, $v );
}
$this->db->insert( _TBL );
return $this->db->insert_id();
}
function update($idx = NULL, $param = NULL)
{
foreach( $param as $k => $v )
{
$this->db->set( $k, $v );
}
$this->db->where( 'idx', $idx );
$this->db->update( _TBL );
}
}
이걸 snippet으로 등록해서 사용합니다.
|
|||
| 다음글 | PHPExcel사용방법 (6) | ||
| 이전글 | Codeigniter 2.1.4, php 5.6 에서 ... (3) | ||
|
한대승(불의회상)
/
2015/01/08 14:44:14 /
추천
0
|
|
변종원(웅파)
/
2015/01/08 15:16:52 /
추천
0
기본셋이네요. ^^
|
|
누구야
/
2015/01/15 14:13:26 /
추천
0
좋은 정보 감사합니다!!~
|
|
미남xa
/
2015/02/25 16:52:53 /
추천
0
get_called_class() 을 사용할 경우에는 테이블이름하고 클래스 이름을 맞춰서 사용하나요?
|
|
한대승(불의회상)
/
2015/02/25 17:04:31 /
추천
0
흠... 예전엔 그냥 지나쳣었는데...
_TBL 로 선언된 값이 2개 이상의 모델을 로드 했을때 문제가 생길수 있을것 같네요. |
|
미남xa
/
2015/02/25 17:38:42 /
추천
0
2개이상의 모델도 그렇고, CI는 사용한지 얼마 되지 않았는데 CI권장이 1모델 1테이블 접근을 권장하나 해서요..
|
|
한대승(불의회상)
/
2015/02/25 18:02:43 /
추천
0
미남xa// 권장은 아니지만 관리하기는 편하더군요.
join 들어가면 관리 차원의 문제는 아닌것 같군요. ^^ CI는 쿼리빌더를 액티브레코드라고는 이름 지은 거라 ORM을 지원하지는 않으니까요. |
core/MY_Model.php 에 집어넣고 확장을 MY_Model로 하면 snippet 보다 조금 더 유연해 지더군요.