제목 | [도움요청] mvc 중 model 사용 방법에 대한 개념 | ||
---|---|---|---|
글쓴이 | 내안의다른삶 | 작성시각 | 2014/10/01 11:29:37 |
|
|||
안녕하세요. 반갑습니다. 첫인사를 이렇게 질문 글로 드리게되어 송구합니다. ㅎ; mvc를 활용하여 개발을 처음 해보려고 하니 view 와 controller 에 대한 사용 방법은 어느정도 구분이되는것 같습니다. ( 그렇지만 검증 받아보지 않아서 막상 엄하게 사용하고 있을 수도 있겠다 싶습니다. ; ) 질문 . model 에 어떤 내용이 들어가야 하는지 모르겠습니다. 예 ) controller : $this->db->select('a,b,c,d') $this->db->where('a', 'test'); $this->model->gets("table"); model : function gets($table){ $result = $this->db->get($table; return $result->result_array(); } 위와 같이 사용하는게 맞는건지 아니면 select 나 join 이나 where 문구나 db에 관련된 모든 내용이 model 안에 있고 컨트롤러에는 상황에 맞는 model 안의 함수만 호출해서 사용해야하는건가요 ? 읽어주신 모든 분들 오늘 좋은 하루되세요 ^^ |
|||
다음글 | redirect 시 Error 발생 (2) | ||
이전글 | 코드를 작성할떄 function만 아니면 public ... (7) | ||
들국화
/
2014/10/01 12:11:37 /
추천
0
|
한대승(불의회상)
/
2014/10/01 12:51:50 /
추천
0
CI가 느슨한 MVC라 모두 무시하고 컨트롤러에 코딩해서 사용하시는 분도 있습니다.
하지만 모델의 코드의 경우 여러 컨트롤러에서 사용하는 경우가 많기때문에 재사용성이 좋아집니다. MVC가 패턴으로 자리잡은데는 다 이유가 있는거죠. 최대한 MVC 패턴에 맞추어 코딩하는 습관을 들이세요. |
람이
/
2014/10/01 14:03:16 /
추천
0
컨트롤러에서는 폼검증이라든가, 조건처리, 변수처리등을 하고 있구요.
모델에서는 위에 컨트롤러에 넣어 사용하시는 디비 쿼리들을 .. 뷰단에서는 오직 뷰 처리만 하고 있습니다. |
내안의다른삶
/
2014/10/01 14:23:26 /
추천
0
들국화님, 한대승님, 람이님
답변 감사합니다. 알고 싶었던 부분에 대해서 도움이 되었습니다. 그렇다면 궁금한게 위의 예에서 <span neue,helvetica,arial,sans-serif"="">$this->db->select('a,b,c,d') $this->db->where('a', 'test'); 이런 코드들이 모델쪽에 들어간다면 셀렉트나 조건문, 조인등에 필요한 내용들을 변수처리해서 컨트롤러에서 전달받아 사용하는 방식으로 사용하는건가요? 아니면 모델안에 코딩해서 사용하는건가요 ? 재사용성을 어느정도 까지 고려해서 코딩해야하는지 어렵네요 ㅠ.ㅠ |
한대승(불의회상)
/
2014/10/01 14:57:09 /
추천
0
어렵지 않습니다.
Controller: $this->model->gets('aaa', array('a' => 'test'));Model: function gets($table, $where = array()){ $this->db->select('a,b,c,d'); if(!empty($where)) { $this->db->where($where); } $result = $this->db->get($table); return $result->result_array(); } |
내안의다른삶
/
2014/10/01 15:05:40 /
추천
0
한대승님 답변 감사합니다.
궁금했던 내용은 안에 셀렉트 되는 a,b,c,d 도 where 처럼 배열로 전달받아서 코딩을 해야 하는지 궁금했습니다. 그런데 위에 예제로 들어주신 것 같이하면 셀렉트되는 열값이 함수안에 정해져 있기때문에 다른 테이블명을 전달해봤자 오류만날 것 같아서 그냥 함수자체를 aaa_gets 이런식으로 하고 $result<span 248,="" 248);="" color:rgb(0,="" 0,="" 0);="" font-family:consolas,monaco,bitstream="" vera="" sans="" mono,courier="" new,courier,monospace"=""> = $this->db->get('aaa'); 이렇게 코딩해서 사용하는건 좋은 방법이 아닐까요? |
변종원(웅파)
/
2014/10/01 15:21:13 /
추천
0
내안의다른삶/ 만들기 나름입니다.
공용함수처럼 공용모델을 만든다면 select할 필드, table name, where, order by, group by 등등을 파라미터로 넘겨서 처리할 수 있고 특정 데이터만 가져오는 것이라면 where절 정도만 넘겨서 처리합니다. 파라미터를 넘기고 안넘기고 보다는 모델의 형태에 따라 달라진다고 보시면 됩니다. |
한대승(불의회상)
/
2014/10/01 15:24:28 /
추천
0
내안의 다른삶// 좋은 방법이 아니라고 생각합니다.
재사용의 의미를 잘 생각해 보세요. A라는 모델의 B라는 메소드를 호출하는데 의도치 않은 외부의 코드로 인해 결과가 달라진다면 어떻게 될까요? 모델을 사용하지 않고 컨트롤러에서 모든걸 처리 하는게 더 나을지도 모릅니다. |
내안의다른삶
/
2014/10/01 15:34:41 /
추천
0
변종원님, 한대승님 답변 감사합니다.
어렵네요. 답변대로라면 공용함수처럼 모든걸 다 파라미터로 받아서 처리하게 모델을 구현할때도 있고 위의 한대승님 답변처럼 고정된 셀렉트 값을 가진 모델 함수를 구현할때도 있다는건데 역시 판단은 개발자가 하는 것이겠지요... ;; |
들국화
/
2014/10/01 15:42:03 /
추천
0
개발할때 이렇케 하니 더 편하고 유용하더라고 하는 수많은 패턴들이 있는것 같구요.
정답은 없는것 같구요. 잘만들어진 좋은코드들 많이 보시면 도움이 될듯 하네요. |
내안의다른삶
/
2014/10/01 15:56:59 /
추천
0
들국화님 답변 감사합니다.
안그래도 지금 구글에서 mvc 패턴이 적용된 간단한 게시판 소스를 찾아보고 있습니다. ㅎㅎ 답변 주신 모든분들 다시 한번 감사합니다. ^^ |
일용직노동자
/
2014/10/03 03:20:58 /
추천
0
ci korea포럼 소스 공개되어있습니다.
포럼소스 참고하시면 많은 도움될거에요 ㅎㅎ |
http://pds11.egloos.com/pds/200904/28/53/c0004553_49f650ab9e3cb.jpg