CI 묻고 답하기

제목 view에서 model호출은 어떻게..
글쓴이 슈퍼개미 작성시각 2010/01/07 22:39:03
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 27442   RSS
안녕하세요..!! 요즘 궁금증이 폭발하고 있습니다.^^;
혹시 view에서 model을 호출할수있는방법이 있나요?
쇼핑몰에서 로그인을 하고 특정상품을 검색해서 DB에 id와 상품번호를 저장했습니다.(장바구니? 쿠키에저장하는것말고..)
그리고 나중에 다시 로그인을 해서 저장한 상품을 보는것은 문제가 없는데 다시 특정상품을 검색했을때
model에서 찾은 상품을 view에서 보여주면서 내가 저장한 상품인지(저장한 상품id) 비교하려니 view에서 model을 다시
호출해야 할 것 같은데 방법을 모르겠습니다.
감사합니다.


 다음글 엑셀출력은?,,, (14)
 이전글 Tank_auth 라이브러리 질문 드려요..? (2)

댓글

변종원(웅파) / 2010/01/07 23:21:46 / 추천 0

컨트롤러에서 처리하면 되는데요?
검색했을때 컨트롤러에서 db에 저장된 상품id 가져와서 비교후 내가 본 것이면 변수에 내가 본거라고
표시하고 뷰 호출.  뷰에서 처리

컨트롤러와 뷰의 관계를 너무 어렵게 생각하지 마시기 바랍니다. 

슈퍼개미 / 2010/01/07 23:27:37 / 추천 0
그러면 상품검색model을 실행하고 값을받아서 뷰로넘기기전에 다시 상품id로 내검색model을 호출
이렇게 하면 되는가요? 다른방법은 없을까요?  그러면 상품이 100개 검색되면 컨트롤러에서 상품id만 추출하기위해
100번 루프돌고 다시 뷰에서 100번 합이 200번을 루핑해야하는방법뿐인가요? 아차 빠른답변감사합니다.
변종원(웅파) / 2010/01/07 23:44:32 / 추천 0
left 조인(상품테이블과 본 상품테이블)을 하셔도 되구요. 서브쿼리를 쓰셔도 됩니다.
그러면 두번 돌 필요없이 한번의 쿼리로 상품리스트에 내가 본 상품까지 체크가 가능합니다.

그리고 뷰에서 모델을 호출할 수는 있습니다만 데이터베이스 라이브러리도 로드해야하고 기타등등 불편합니다.
뷰에서 아래 구문처럼 모델선언하고 사용하시면 됩니다.

$CI =& get_instance();
$CI->load->model("admin_m");
$aa = $CI->admin_m->id_check('blumine');
echo $aa;

추가 : 데이터베이스 라이브러리를 로딩할 수가 없네요. DB를 이용하지 않는 일반적인 함수는 사용가능합니다.
슈퍼개미 / 2010/01/08 12:37:07 / 추천 0
join을 할 수 있을까요? 상품을 검색후 비교를 해야하는데...
만약 join을 하면 사용자id가 검색조건에 들어가야해서
결국엔 사용자가 가지고있는 상품id만 나오지 않을까요?
변종원(웅파) / 2010/01/08 13:53:53 / 추천 0
검색쿼리에 조인을 하시면 됩니다.

어차피 사용자 아이디가 없이 검색을 한 경우에는 사용을 못할테구요. (기존 방식도 마찬가지)
이런 경우에는 사용자 아이디로 체크하는 것이 아니라 쿠키로 체크하셔야 할것 같습니다.
한 일주일정도 살아있는 쿠키를 만들고 카트테이블에 쿠키도 입력,
비교할때 사용자아이디가 아닌 쿠키로 비교