CI 묻고 답하기

제목 index() 함수에서는 해당 클래스와 동일한 이름에 뷰를 기본으로 불러오나요?
글쓴이 지지고 작성시각 2011/03/08 02:34:11
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 20295   RSS
memo 코드를 보다가
function index() 
        // 아무것도 지정하지 않았을 경우 Memo 클래스 접근 시 실행되는 기본 함수
	{
		// 폼 도우미 검사규칙 설정 $this->form_validation->set_rules('필드이름', '사람이알아볼만한 이름', '비어있으면 FALSE 반환');
		
                $this->form_validation->set_rules('username', '이름', 'required');
		$this->form_validation->set_rules('memo', '메모', 'required');
		$this->form_validation->set_message('required', '%s 칸이 비어 있습니다.');
		/* language/english/form_validation_lang.php 안에 내장된 에러메시지 중
		 required 규칙에 관련된 메세지를 출력한다.
		 %s 를 쓰면 사람이알아볼만한 이름으로 대체된다.
		 결과값은 이름 칸이 비어 있습니다. 내지는 메모 칸이 비어 있습니다. 일 것이다. */

		if ($this->form_validation->run() == FALSE) 
                // 폼 도우미 실행 실패 시 FALSE 값 반환을 했다면
		{
			$data['list'] = $this->memo_model->get_memo(); 
			/* memo_model 클래스에 get_memo 함수를 실행한 값 (memo 테이블 쿼리 후 쿼리 변수에 result() 부분)
			 을 $data['list'] 에 집어 넣는다. */
			$this->load->view('memo',$data); 
                        // memo 라는 뷰를 불러오는데 $data 값을 넘겨준다.
		        // 즉, 이 상태에서 memo 라는 뷰에서는 $data 값을 보여줄 수 있다.

		} /* 결국은 memo 테이블에서 읽어온 값을 $data['list'] 변수로 넘겨주고
                   이걸 memo 라는 뷰에 넘겨줘서 이 값을 적당한 형태로 보여줄 수 있게 해준다. */
		else
		{
			$this->memo_model->insert_memo(); 
                        // 메모_모델 클래스에 insert_memo 함수를 실행한다.
			redirect('memo'); 
                        // url 도우미기능이다. 지정된 로컬URI로 가게한다. 
		}
	}

질문 1.

처음에 index() 에서 보여줄 view를 지정하지 않았을 때...
기본으로 컨트롤러와 같은 이름을 가진 view를 불러오는 건가요??

즉, memo 클래스에 index() 함수가 호출되면 자동으로 memo.php 뷰가 호출되어 화면에 뿌려지나요???

그렇다면 당연히 입력된 값이 없는상태이니 get_memo 함수 실행으로 값을 보여줄 수 있는게 맞는거고...

질문2.

위에것이 맞다면... else 문 실행될 수가 없는건데... 어떻게 실행되는거죠?

else 문 실행은 폼을 통해 값이 이미 해당 필드에 입력됐을 경우만 실행이 되는건데...
index()로 그냥 model.php 뷰만 불러왔다면 폼 필드에 아무 값도 입력이 안됐을 것일텐데...
 다음글 [초보]ci2.0 모듈러의 사용 (2)
 이전글 CI 구동을 마법에 비유해 봤습니다. (2)

댓글

지지고 / 2011/03/08 03:38:34 / 추천 0
자답

view 에 form 부분 보니 알겠네요...

form_open('memo'); 해서
 <form method="post" action="http:/example.com/index.php/memo" />
  요 주소로 폼 값이 전송되게 한 후... submit 하면

memo 컨트롤러에 폼 필드 값이 넘어가고 그 상태에서면 index()에 폼검증 조건절이 실행되서
해당값 입력 후 다시 memo 뷰를 보여주는 거네요...

아... 신기하네요..
변종원(웅파) / 2011/03/08 09:08:23 / 추천 0
Ci 는 일단 mvc패턴 이해하면 쉽습니다..