CI 묻고 답하기

제목 컨트롤러 함수 관련 질문 드립니다.
카테고리 CI 2, 3
글쓴이 초심으로 작성시각 2023/11/24 12:20:11
댓글 : 2 추천 : 0 스크랩 : 1 조회수 : 2071   RSS

안녕하세요.

어제부터 ci3 튜토리얼 보면서 공부 시작했는데 궁금한게 있어서 질문 드려봅니다.

1.  routes.php 에 파일에

$route['default_controller'] = 'pages/view'; 

--> 위와같이 적으면 브라우저에서 도메인 입력했을 때 보여지는 첫페이지가 pages 컨트롤러에 view 함수에

있는 view 페이지가 보여진다. 라고 이해했는데 맞는 건가요?

 

2. Pages.php 컨트롤러 파일의 view 함수

	public function view($page = 'home')
	{
		//-- view 페이지가 존재하는지 검사
		if ( !file_exists(APPPATH.'views/pages/'.$page.'.php') )
		{
			show_404();
		}

		$data['title'] = ucfirst($page); //-- 첫글자 대문자

		$this->load->view('templates/header', $data);
		$this->load->view('pages/'.$page, $data);
		$this->load->view('templates/footer', $data);
	}

--> 여기 view 함수에서 나머지는 알겠는데. view($page = 'home')  여기서 $page 파라미터에 다른 값을 주려면 

     브라우저 주소에  http://localhost:8801/pages/view/page=sub

     이런식으로 입력하면 되는건가요?

      sub.php 페이지를 만들어서 테스트를 해보면 

      An Error Was Encountered / The URI you submitted has disallowed characters. 

      이런 오류가 나오구요. 

      http://localhost:8801/pages/view/sub 

      이렇게 주소를 입력하면 제대로 나오는데 

      그럼 $page = 'home' 여기에서 $page 파라미터가 의미하는 건 무었인가요?

      

   

 다음글 라우터 설정 관련 문의 (1)
 이전글 php 레거시 -> ci 전환 질문 (2)

댓글

kaido / 2023/11/24 14:01:59 / 추천 1
// page=sub 

$page = "sub"; 

 

이렇게 받고 싶으시다는 것이죠?

어렵게 생각 하실것 없습니다. 기본을 먼저 떠올리시면 됩니다.

get string 사용법은 당연하게도  ?page=sub&data=1  이런 형태 이여야 합니다.

해당 오류는 uri 스트링 형식에 오류가 있음을 의미합니다.

 

function view($page = 'home') 

 

여기서 말하는  $page는 메소드 호출상에 $page 라는 변수가 디폴트로 home 을 넣겠다는 의미입니다.

uri 에서 page 를 sub 로 받는거랑 관련 없습니다. 메소드 호출을 생각 해보시면 됩니다.

일부 언어 프레임워크 중에는 메소드에서 바로 파라메터를 받기도 합니다만 CI 에서는 그렇게 사용하지 않습니다.

get string 으로 받을려면 

$page = $this->input->get_post("page");
$page = $this->input->get("page");

 

해당 형태로 받아보세요.

초심으로 / 2023/11/24 14:40:43 / 추천 0

여기서 말하는  $page는 메소드 호출상에 $page 라는 변수가 디폴트로 home 을 넣겠다는 의미입니다.

uri 에서 page 를 sub 로 받는거랑 관련 없습니다. 메소드 호출을 생각 해보시면 됩니다.

 

--> 이 말씀이 핵심이네요... 잘 알겠습니다. 감사합니다. (--)(__)