CI 묻고 답하기

제목 페이지 하나에서 view 여러개쓸수있나요..??
글쓴이 우왕 작성시각 2011/06/22 14:12:55
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 20067   RSS
$this->db->view
이거 여러개 쓸수있나요?
그렇게했는데.. 파일명이 하나니깐 안나와서요.....
분명 방법이 있다고했는데..모르겠어서 질문합니당..
 다음글 폼검증시 input type=file은 제대로 처리 안... (3)
 이전글 1.7.3에서는 괜찮은데 2.0.2에서는 문제가 있네요... (5)

댓글

배강민 / 2011/06/22 14:23:32 / 추천 0
$this->load->view('a_view');
$this->load->view('b_view');
$this->load->view('c_view');

이렇게 나열할 수 있는걸로 아는데용?

근데 $this->db->view 이런것도 있던가요?
우왕 / 2011/06/22 16:12:59 / 추천 0
아  잘못썼네요..;;

근데 그렇게 쓰게되면..URL에 해당파일명을 쓰게되잖아요..그렇게되면
한 페이지만 뜨던데
다른view페이지들도 보이게하려면 어떻게해야하나요..??
헛발이 / 2011/06/22 17:04:44 / 추천 0
원래 기본적으로 하나의 콘트롤러에서 하나의 메소드에서 하나의 페이지만 표현이 가능합니다.

지금 하시려는 부분은 해더부분도 콘트롤러로 만들어서 붙여 놓고
사이트부분도 콘트롤러 만들어서 붙여놓고
메인컨탠츠부분도 콘트롤러로 만들어서
하나의 URL에 모두 표현하려는거죠?

그때가 되면 이제 초급이 아니십니다.. 무슨말이냐 하면 이제 스스로 방법을 찾을 때가 되었고
짱구를 굴려 스스로의 방법을 찾아야 한다는거에요..

그렇게 여러개의 콘토롤러를 붙여 하나로 표현하는 방법은 여러가지가 있어요..
주로 사용들을 많이 하는 것이..

1. 아주 오래전방식처럼 해더, 푸터등을 미리 만들어 놓고 항상 뷰를 로드 하는 부분에서
class Page extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }

    function about()
    {
      $this->load->view('header_form');
      $this->load->view('side_form');
      $this->load->view('about_form');
      $this->load->view('footer_form');
    }
}
그런 방식이 있고 하지만 이건 좀 문제가 많이 잇죠.. 헤더속에서도 또다른 콘트롤러를 불러서 뭔가 더 구체적으로 출력할수도 있구요...

2. 그래서 누군가 이미 만들어 놓은 위젯이란 기능이 있어요.. 이건 콘트롤러와 뷰만 제공해주는 일종의 핼퍼인데 정식으로 코드이그나이터에서 제공해주는것은 아니구 누군가 별도로 만든거 같아요..
저도 후쿠를 이용한 레이아웃과 위젯을 이용해서 만들고 있답니다..

아마 포럼에서 widget이라고 해서 찾아보시면 많은 자료가 있을거에요.. 아니면 codeigniter.com/wiki이나 구글신을 이용하면 더 많은 사용법을 찾을 수 있을거에요..

댓글로 알려드리는것은 꽤 힘들거든요... 설명할게 많아서...


우왕 / 2011/06/23 17:46:41 / 추천 0

제가 하고자하던건.. model, controller 페이지를 각각 하나씩 만들었었는데 그렇게 하게되면 낭비래서 한페이지에 model,컨트롤러 모아놓고 나중에 수정시에 한페이지에서만 손볼수있게..그렇게 하려고하거든요..근데 hook를 쓰라고해서 예제를 따라해보고있긴한데.. 해깔려서요.. 그리고 왜 hook를 쓰는지 모르겠습니다...... 예제에서 조금만바꿔서 제가 만든 소스가 뜨도록 했는데.. 작업한 한 페이지만 뜨고 다른페이지들은 안뜨는데요.;;하 감이 안오네요...도와주시면 감사하겠습니다.....

변종원(웅파) / 2011/06/23 19:02:05 / 추천 0
컨트롤러 하나에 모델 여러개, 뷰 여러개 사용할 수 있습니다. 질문이 상당히 헷갈려서 정확하게 무얼 원하시는지 모르겠습니다. 질문을 잘 정리해서 다시 올려주세요
우왕 / 2011/06/23 21:33:23 / 추천 0

죄송해요..휴
$this->load->view('history');
$this->load->view('count');
$this->load->view('faq'); 이런식으로 수십개가 적힌 컨트롤러가 있는데요..
클래스명이 Ai 이라고 쳤을 때.. URL 치고 Ai 치면 컨트롤러에 적힌 view 찾아서 홈페이지에 열리잖아요..

화면에 제가 원하는 페이지가 보이긴하는데,, 저 위에 소스로 예를들면.. history페이지만 보인다 이거죠....
그 밑에 count라던가 faq라던가,,이런 페이지는 안보이구...ㅜㅜ

휴 .. 예제도 보고 목차에 후킹? 그것도 보긴했는데 좀더 기초적인 그런 부분이 없는거같아서요..ㅜ

변종원(웅파) / 2011/06/24 01:28:11 / 추천 0
첫번째 view를 주석처리해도 동일한 현상이 생기는지 보시구요. 이왕이면 문제가 되는 소스를 올려주세요