평범한 이야기들

[PHP] CodeIgniter (코드이그나이터) View 본문

평범한 개발 이야기/PHP

[PHP] CodeIgniter (코드이그나이터) View

songsariya 2014. 12. 5. 18:28
728x90

CIView를 정리할려고 합니다.


View는 사용자들이 볼 수 있는 영역, 즉 화면에 출력되는 부분이라고 할 수 있습니다.

CI를 이용한다면 MVC 디자인 패턴을 사용하기 때문에 View를 나누어 주는것이 좋다고 봅니다.

Controller에서 직접 코딩하지 않고 View를 사용하는 이유는 체계적으로 관리를 하기 위함입니다.

디자이너나 퍼블리셔, 그리고 프로그래머의 업무를 나누어 작업 할 수 있기 때문에 

수정하는 과정에서 오류를 조금이나마 낮출 수 있기 때문입니다.


CI가 설치된 폴더에 application 디렉토리 하위에 views라는 디렉토리에 php 파일을 생성하고 

화면에 보여질 소스를 입력하시고 저장하시면 됩니다. 

(보통은 html 태그들입니다.)



Controller에서는 뷰를 호출하기 위해서 다음과 같은 구문을 사용해야합니다.


$this->load->view("파일명");


확장명은 안쓰셔도 됩니다. 약속입니다.

이 구문을 통해 application/views/에 있는 파일을 화면으로 불러올 수 있습니다.


저는 application/views/ 에 총 4가지의 파일을 추가하였습니다.


공통된 파일


header.php

footer.php


그 외 메인부분


test.php

some.php


그리고 다음과 같이 코딩하였습니다.



application/views/header.php


<!DOCTYPE html>
<html>
<head>
    <title>CodeIgniter 연습</title>
    <meta charset="utf-8">
 </head>
<body>
    <header>
        <h1> Codeigniter 연습 </h1>
    </header>


application/views/footer.php


<footer>
	footer 파일입니다.
</footer>
</body>
</html>


application/views/test.php


<h2>여기는 Views 밑에 있는 test.php 파일입니다.</h2>



application/views/some.php


<h2> views 밑에 some.php 파일입니다. </h2> <?=$id?>



그리고 저번에 작성한 Controller인 test.php를 다음과 같이 수정하였습니다.


application/controller/test.php


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Test extends CI_Controller {


	public function index()
	{
		$this->load->view('header');
		$this->load->view('test');
		$this->load->view('footer');

	}

	public function Some($parameter)
	{
		$this->load->view('header');
		$this->load->view('some',array('id'=>$parameter));
		$this->load->view('footer');
	}

}
?>


/index.php/test/ 로 접속 했을 때 화면



/index.php/test/some/1 로 접속했을 때 화면




View로 자료값을 동적으로 넘길때에는 Some 함수를 참고 하시면 됩니다.

View의 2번째 인자를 array형식 또는 Object 형식으로 보내주면 됩니다.


다차원 배열을 이용해 더 멋진 값들을 넘길 수도 있습니다.



※참고자료


Opentutorial - 생활코딩 Controller 편 : http://opentutorials.org/module/327/3826

Codeigniter Manual : http://codeigniter-kr.org/user_guide_2.1.0/general/views.html


#제 블로그 보다 Opentutoril의 생활코딩에 올라온 자료가 더 좋습니다.

공부하면서 정리하는 내용입니다.




728x90
Comments