CI 묻고 답하기

제목 매번 모델을 로드 하는게 잘하는 건지 모르겠습니다 ㅠ.ㅠ
글쓴이 다니엘SEO 작성시각 2011/09/19 16:50:21
댓글 : 29 추천 : 0 스크랩 : 1 조회수 : 17300   RSS
$this->load->model('member_info');

$data['my_info'] = $this->Myinfo_model->member_info(); //회원정보 로드
$data['new_friend'] = $this->Myinfo_model->new_friend(); //친구 신청 건수 로드  
$data['new_message'] = $this->Myinfo_model->new_message(); //새쪽지 건수 로드  
$data['new_ask_feed'] = $this->Myinfo_model->new_ask_feed(); //새 질문 건수 로드  
$data['new_gift'] = $this->Myinfo_model->new_gift(); //새 선물 건수 로드
$data['my_ranking'] = $this->Myinfo_model->my_ranking(); //내 랭킹 로드
$data['my_ranking_list_query'] = $this->Myinfo_model->my_ranking_list(); //내 랭킹 로드

$this->load->view('home',$data);

위와 같은 식으로 페이지 마다 로드를 해주고 있습니다.
매번 컨트롤러 긴 코드를 넣는게 왠지 맘에 들지 않고...폼 검증을 하려다 보니 form_validation->run() = FALSE 일 때 view를 로드하는 부분에 저 코드를 또 쓰려니 왠지 찜찜합니다...

저런식으로 하는게 맞는건지...
더 좋은 방법이 있는건지 궁금합니다 ^^

매번 감사합니다!!

 다음글 force_download() 예제 하나만 부탁드립니... (2)
 이전글 dx_auth적용중에 알수없는 오류가떴는데요.. (6)

댓글

한대승(불의회상) / 2011/09/19 16:52:47 / 추천 0
네.. 매번 로드 하는게 맞습니다. ^^
다니엘SEO / 2011/09/19 16:53:43 / 추천 0
 그렇군요 ㅠ.ㅠ 왠지 인크루드를 안쓰니 불안합니다....ㅠ.ㅠ ㅎㅎ
감사합니다!! ^^
한대승(불의회상) / 2011/09/19 16:53:49 / 추천 0
뷰는 컨트롤에서 데이터 넘겨서 처리하는데 ... 모델 로드 할 필요 있나요?
한대승(불의회상) / 2011/09/19 16:55:05 / 추천 0
귀차니즘이 싫다면 웅파님이 말한대로 공통모듈 만들어서 로드 하시면 됩니당..!! ^^
다니엘SEO / 2011/09/19 16:56:16 / 추천 0
 컨트롤에서 모델을 로드해서 그 값을 뷰로 넘기고 있는데요...좋은 방법이 있을까요? 제가 잘 못하고 있나요??@_@;;;
한대승(불의회상) / 2011/09/19 17:00:10 / 추천 0
잘하고 계십니다. ^^

컨트롤에서 모듈 로드해서 필요한 데이터만 뷰로 넘겨 출력하면 ^^

MVC가 되는겁니다. ㅋㅋㅋㅋㅋㅋ
다니엘SEO / 2011/09/19 17:03:51 / 추천 0
 잘하고 있다니 다행이네용 ㅠ.ㅠ 그런데 한페이지 내에서 아래 코드들이 계속 반복되니... 왠지 보기 싫네요 ㅋㅋ
그리로 공통 모듈은 어떻게 만들고 어떻게 사용하는지에 대한 부분은 메뉴얼의 어떤 부분을 보면 될까요? ^^
$data['my_info'] = $this->Myinfo_model->member_info(); //회원정보 로드
$data['new_friend'] = $this->Myinfo_model->new_friend(); //친구 신청 건수 로드  
$data['new_message'] = $this->Myinfo_model->new_message(); //새쪽지 건수 로드  
$data['new_ask_feed'] = $this->Myinfo_model->new_ask_feed(); //새 질문 건수 로드  
$data['new_gift'] = $this->Myinfo_model->new_gift(); //새 선물 건수 로드
$data['my_ranking'] = $this->Myinfo_model->my_ranking(); //내 랭킹 로드
$data['my_ranking_list_query'] = $this->Myinfo_model->my_ranking_list(); //내 랭킹 로드
한대승(불의회상) / 2011/09/19 17:31:24 / 추천 0
function myinfo_data($mm) {
 $data['my_info'] = $mm->member_info(); //회원정보 로드
 $data['new_friend'] = $mm->new_friend(); //친구 신청 건수 로드 
 $data['new_message'] = $mm->new_message(); //새쪽지 건수 로드 
 $data['new_ask_feed'] = $mm->new_ask_feed(); //새 질문 건수 로드 
 $data['new_gift'] = $mm->new_gift(); //새 선물 건수 로드
 $data['my_ranking'] = $mm->my_ranking(); //내 랭킹 로드
 $data['my_ranking_list_query'] = $mm->my_ranking_list(); //내 랭킹 로드<br type="_moz">

 return $data;
}
 요렇게 해두고

$data =  myinfo_data($this->Myinfo_model);
요거만 불러쓰면 되겠네요.. ㅋㅋ
다니엘SEO / 2011/09/19 17:37:06 / 추천 0
오....뭔가 감이 오긴 하는데요!!!

펑션을 만들어서 어디에 넣어 두면 항상 불러 올 수 있을까요??@0@
들국화 / 2011/09/19 17:47:47 / 추천 0
회원정보는 게속 해서 로드해야 하는지 궁금 하네요.
세션이나 기타방법으로 일정시간 캐시를 해서 디비에 부담을 더는 방법도 괜찮을듯 합니다.
구지 완전한 실시간으로 해야 하는 서비스가 아니라면 1~5분정도 캐싱하는것도 괜찮은 방법이 아닐까 합니다.
거의 실시간으로 해야 한다면 쿼리수를 좀 줄이는 방법이 낫지 않을까 합니다.
그냥 문득 드는 생각 입니다. ^^
한대승(불의회상) / 2011/09/19 17:47:49 / 추천 0
그부분이 공통 모듈이 되겠네요.. ^^

라이브러리로 만드셔도 되공... 아니면 헬퍼쪽에 두셔도 되고...

^^
한대승(불의회상) / 2011/09/19 17:48:23 / 추천 0
모델에 함수 하나로 묶어서 처리 하셔도 되고..
연구하시면 방법이 많네요.. ㅎㅎㅎ
한대승(불의회상) / 2011/09/19 17:52:23 / 추천 0
DB 부하가 부담 되신다면.. ^^
DB 캐슁쪽을 살펴 보시면 도움이 될겁니다. 

CI 참 좋죠.. ^^
다니엘SEO / 2011/09/19 17:54:21 / 추천 0
 들국화님, 저도 그렇게 할까 생각을 하고 있어요...
움...처음 접속시에 세션에 회원 정보를 담고 저장시점을 담는 세션을 만들어서 불러 오는 시점과 마지막 저장 시점과 시간차이가 5분이상이라면 디비를 로드해서 다시 세션을 만드는 방법으로 해볼까 하는데...괜찮을까요?

불의회상님, 아무래도 DB에서 읽어 오는 부분이니 모델쪽에 만들어 놓으려고 하는데...맞겠죠 ^^;;

그리고 혹시, if문에서 ==과  ===의 차이 아시나요 ^^;;
한대승(불의회상) / 2011/09/19 17:57:32 / 추천 0
php 메녈 한 번 보시면 한방에 해결.. ㅋㅋㅋㅋㅋ