CI 묻고 답하기

제목 DB 데이터 처리 위치, 모델 or 컨트롤러
글쓴이 만돌애비 작성시각 2013/01/18 09:58:42
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 13986   RSS
안녕하세요, 한가지 궁금한 것이 생겨서 이렇게 글을 남기네요.

모델에서 DB 데이터를 불러오고나서, 불러온 데이터 중 몇몇 필드만 쓸 때, 보통 어디서 하는게 맞는건가요?

예를 들어,
// $rows = DB 에서 불러온 데이터
foreach ($rows as $row)
{
    $ret[] = array($row['username'], $row['password']);
}
이런식으로 username 하고 password 만 필요할 때, 위의 foreach 구문까지 모델에서 처리해주는게 맞나요? 아니면 모델에서는 $rows 만 리턴시키고, 컨트롤러에서 위의 구문을 실행하는게 맞나요?

굉장히 간단한 문제인거 같은데, 굉장히 헷갈리네요...

조언 부탁드립니다 ^^

혹시라도 질문이 이해가 안되시면 말씀해주세요!




 다음글 Tutorial − News section 에서 URL... (5)
 이전글 코드이그나이트를 처음 접합니다 강좌들이 다들 구버젼인듯... (2)

댓글

만두님 / 2013/01/18 10:11:45 / 추천 0
음... 저도 얼마 경력이 안되지만....
저는 컨트롤러에서 처리 합니다!
criuce / 2013/01/18 13:14:46 / 추천 0
모델에서 데이터 가공하는 함수, 데이터를 DB에서 가져오는 함수 따로 만들어 씁니다.
변종원(웅파) / 2013/01/18 13:46:28 / 추천 0
이론대로라면 컨트롤러에서 처리하는게 맞을건데요.

생각해보니 모델안에서 처리하기도 하고 컨트롤러에서 처리하기도 하고 그랬네요.
criuce님 말씀처럼 모델에서 데이터를 가져와서 컨트롤러에서 가공하는 함수(모델에 두는게 맞는지 고민)를
다시 호출하는 것이 좋을 것 같습니다.
인스카 / 2013/01/18 19:05:46 / 추천 0
저의 경우, 재사용이 가능한 모델 function인 경우 model에서 최대한 처리를 한 뒤 return을 하고,
일회용으로 사용되는 model인 경우 controller에서 처리를 합니다.


만돌애비 / 2013/01/19 00:34:04 / 추천 0
그렇군요. 일단 위에서 말씀해주신 여러방법으로 다 시도해 보고 제일 맞다고 생각되는걸로 해야겠네요. 답변 감사합니다!