문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
software:codeignter_tutorial [2011/08/11 18:23] sivanim |
software:codeignter_tutorial [2011/08/17 14:51] sivanim [단계1] |
||
---|---|---|---|
줄 12: | 줄 12: | ||
* 제대로 설치 하시고 웹에 접을 했을 때 아래와 같은 화면이 뜹니다. | * 제대로 설치 하시고 웹에 접을 했을 때 아래와 같은 화면이 뜹니다. | ||
- | {{: | + | {{: |
====== 설정 ====== | ====== 설정 ====== | ||
* 아래 설정 중 필 수 적인 것은 없습니다. 상황과 편의를 위해서 한 것이기 때문에 자신에게 맞게 더 설정하거나 변경하셔야 합니다. | * 아래 설정 중 필 수 적인 것은 없습니다. 상황과 편의를 위해서 한 것이기 때문에 자신에게 맞게 더 설정하거나 변경하셔야 합니다. | ||
줄 71: | 줄 70: | ||
====== 활용 ====== | ====== 활용 ====== | ||
테스트에서 DB는 Mysql을 사용했고 test란 테이블을 하나 만들었습니다. 테이블에 Id int(11)autoincrease, | 테스트에서 DB는 Mysql을 사용했고 test란 테이블을 하나 만들었습니다. 테이블에 Id int(11)autoincrease, | ||
+ | 이제 test 테이블에 데이터를 쓰고, 읽고 , 수정, 삭제 하는 간단한 프로그램을 만들어 보도록 하겠습니다. | ||
===== 단계1 ===== | ===== 단계1 ===== | ||
줄 85: | 줄 85: | ||
* 그렇게 작성하고 웹페이지 접근하면 아래와 같은 페이지가 나옵니다. (ex: http:// | * 그렇게 작성하고 웹페이지 접근하면 아래와 같은 페이지가 나옵니다. (ex: http:// | ||
- | {{: | + | {{: |
* 위는 컨트롤러를 설정한 것으로 index()는 기본적으로 가장 먼저 실행되는 함수 입니다. | * 위는 컨트롤러를 설정한 것으로 index()는 기본적으로 가장 먼저 실행되는 함수 입니다. | ||
+ | * 이제 컨트롤러 안에 아래와 같은 내용을 삽입합니다. | ||
+ | |||
+ | |||
+ | <? | ||
+ | class Blog extends CI_Controller { | ||
+ | |||
+ | /*생성자 입니다. CI 컨트롤러가 실행될때 가정 먼저 실행됩니다.*/ | ||
+ | public function __construct() | ||
+ | | ||
+ | | ||
+ | /*url helper 입니다. anchor 같은 함수를 사용할 때 사용합니다.*/ | ||
+ | | ||
+ | /*url helper 입니다. form기능을 좀더 쉽게 만들어 줍니다.*/ | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | /*index 메소드 입니다. 특정 메소드가 없으면 호출되는 함수 입니다.*/ | ||
+ | public function index() | ||
+ | { | ||
+ | |||
+ | /* models 폴더에서 test.php 모델을 호출합니다. */ | ||
+ | | ||
+ | /* data 배열의 query란 이름으로 test 모델에서 가져온 엔트리 값을 넣어 줍니다*/ | ||
+ | | ||
+ | |||
+ | / | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | /* wirte 메소드 입니다. write 메소드는 글을 입력 할때 사용하는 메소드입니다.*/ | ||
+ | public function write() | ||
+ | { | ||
+ | /*views 폴더에 write.php 페이지를 호출합니다.*/ | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | /* update 입니다. 글을 수정을 할때 사용하는 페이지 입니다.*/ | ||
+ | public function update() | ||
+ | { | ||
+ | /* get_where 함수와 3번째 세그번트 값을 이용하여 test 테이블의 특정 id 데이터만 가지고 옵니다. | ||
+ | 간단한 데이터를 위처럼 모델을 사용하지 않고 바로 호출하는게 더 간단 할 수 있습니다.*/ | ||
+ | $data[' | ||
+ | /* views 폴더의 update.php 파일을 호출합니다. */ | ||
+ | $this-> | ||
+ | } | ||
+ | /* delete 입니다. 특정 id 번호를 삭제 합니다.*/ | ||
+ | public function delete() | ||
+ | { | ||
+ | /*실제로 파일을 삭제 하는 부분입니다. delete를 이용하여 3번째 세그번트의 id 값을 삭제 합니다.*/ | ||
+ | $this-> | ||
+ | /*삭제 후에 자동으로 가는 페이지 입니다.*/ | ||
+ | redirect(' | ||
+ | } | ||
+ | |||
+ | |||
+ | /* 글을 쓴 data를 insert합니다. write.php 에서 데이터를 보내면 데이터를 입력합니다.*/ | ||
+ | public function data_insert() | ||
+ | { | ||
+ | /* models 폴더에서 test.php 모델을 호출합니다. */ | ||
+ | $this-> | ||
+ | /* test 모델을 insert_entry() 메소드를 실행합니다. */ | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | /* data를 update합니다. write.php 에서 데이터를 보내면 데이터를 입력합니다.*/ | ||
+ | public function data_update() | ||
+ | { | ||
+ | /* models 폴더에서 test.php 모델을 호출합니다. */ | ||
+ | $this-> | ||
+ | /* update_entry 메소드를 호출합니다. */ | ||
+ | $this-> | ||
+ | } | ||
+ | | ||
+ | |||
+ | } | ||
+ | ?> | ||
+ | |||
+ | |||
===== 단계2 ===== | ===== 단계2 ===== | ||
+ | 컨트롤러에서 호출했던 모델을 만들어 보겠습니다. 모델은 내부적으로 돌아 가는 비지니스 로직 또는 데이터 입력, | ||
+ | |||
+ | * 모델 이름은 test라고 하겠습니다. application/ | ||
+ | <? | ||
+ | class test extends CI_Model { | ||
+ | |||
+ | /*전역 변수 입니다. 주로 컬럼 값을 미리 정해 놓고 사용할 때 전역 변수로 사용합니다. 하지만 | ||
+ | 전역 변수를 사용하게 되면 메소드 마다 사용되는 컬럼 값이 틀려 질 때 오류가 날 수 있으니깐 조심해서 사용해야 합니다.*/ | ||
+ | var $title = ''; | ||
+ | var $contents = ''; | ||
+ | /* 생성자 입니다.*/ | ||
+ | function __construct() | ||
+ | { | ||
+ | parent:: | ||
+ | } | ||
+ | /* test 테이블의 모든 데이터를 가지고 오는 메소드 입니다.*/ | ||
+ | function all_entries() | ||
+ | { | ||
+ | /*test 테이블의 데이터를 가지고 옵니다. */ | ||
+ | $query = $this-> | ||
+ | return $query; | ||
+ | } | ||
+ | |||
+ | /* data를 insert 하는 함수 입니다. 특정 sql을 이용하지 않고 CI에서 제공하는 insert 함수를 사용합니다. | ||
+ | 배열안의 데이터 이름과 컬럼 명이 같으면 자동으로 insert 됩니다.*/ | ||
+ | function insert_entry() | ||
+ | { | ||
+ | / | ||
+ | $_POST로 바로 데이터를 보내셔도 됩니다. 아래와 같이 사용할 경우 form안에 엘레먼트 id 가 db 필드 명과 같아야 합니다.*/ | ||
+ | // | ||
+ | // | ||
+ | |||
+ | /*post로 받은 폼 값을 바로 넘기겠습니다.*/ | ||
+ | $this-> | ||
+ | /* redirect로 index페이지로 넘어 갑니다.*/ | ||
+ | redirect(' | ||
+ | } | ||
+ | /* data를 update 하는 메소드 입니다.*/ | ||
+ | function update_entry() | ||
+ | { | ||
+ | /*전역 변수로 선언한 변수에 post 넘어온 데이터를 넣습니다.*/ | ||
+ | $this-> | ||
+ | $this-> | ||
+ | |||
+ | /* 3번째 세그먼트(세그먼트는 주소 창에 /로 구분되어 있는 데이터 입니다.) ID를 기준하여 update 합니다.*/ | ||
+ | $this-> | ||
+ | redirect(' | ||
+ | } | ||
+ | |||
+ | /* 데이터를 delete 하는 메소드 입니다. 사용되지는 않습니다. 간단하기에 controller에 바로 넣었습니다.*/ | ||
+ | function delete_entry() | ||
+ | { | ||
+ | $this-> | ||
+ | redirect(' | ||
+ | } | ||
+ | |||
+ | } | ||
+ | ?> | ||
+ | |||
+ | |||
+ | ===== 단계3 ===== | ||
+ | View 를 만들어 보겠습니다. View는 클라이언트에게 보여지는 화면입니다. 이번 sample에는 View는 main, update, write 페이지로 나뉩니다. View 파일은 전부 | ||
+ | apllication/ | ||
+ | |||
+ | |||
+ | |||
+ | ==== main.php ==== | ||
+ | * main 페이지 소스 입니다. main 페이지는 가장 먼저 화면에 보여지는 부분으로 데이터를 보여주고 입력, 수정, 삭제를 할 수 있습니다. < | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <meta charset=" | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | <table width=" | ||
+ | < | ||
+ | < | ||
+ | |||
+ | |||
+ | <? | ||
+ | /* $query에 각 row별 result 값을 받아서 item 배열에 넣습니다. row가 없을 때 까지 진행 됩니다.*/ | ||
+ | foreach($query-> | ||
+ | ?> | ||
+ | <!-- title 값을 출력 합니다.--> | ||
+ | < | ||
+ | <!-- contents 값을 출력 합니다.--> | ||
+ | < | ||
+ | <hr/> | ||
+ | |||
+ | <!-- anchor 함수는 페이지 링크를 쉽게 해주는 uri 핼퍼의 함수입니다.--> | ||
+ | <? | ||
+ | <? | ||
+ | <hr/> | ||
+ | |||
+ | |||
+ | <?}?> | ||
+ | |||
+ | <? | ||
+ | |||
+ | |||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== write.php ==== | ||
+ | * write.php는 데이터를 입력하는 view 입니다. < | ||
+ | < | ||
+ | < | ||
+ | <meta charset=" | ||
+ | </ | ||
+ | < | ||
+ | <!-- form 핼퍼를 사용한 form_open 입니다. form 설정을 쉽게 해줍니다.--> | ||
+ | <? | ||
+ | |||
+ | <input type = " | ||
+ | <br/> | ||
+ | < | ||
+ | <br/> | ||
+ | <input type= " | ||
+ | <? | ||
+ | </ | ||
+ | </ | ||
+ | ==== update.php ==== | ||
+ | * update View는 데이터를 udate 할 때 사용하는 view 입니다. write.php 와 거의 동일합니다. < | ||
+ | < | ||
+ | < | ||
+ | <meta charset=" | ||
+ | </ | ||
+ | < | ||
+ | <? | ||
+ | if ($query-> | ||
+ | { | ||
+ | $item = $query-> | ||
+ | |||
+ | } | ||
+ | ?> | ||
+ | |||
+ | <? | ||
+ | <? | ||
+ | |||
+ | <input type = " | ||
+ | <br/> | ||
+ | < | ||
+ | <br/> | ||
+ | <input type= " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 단계4 ===== | ||
+ | |||
+ | * main.php 화면입니다. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * write.php 화면입니다. | ||
+ | {{: | ||
+ | |||
+ | |||
+ | * update.php 화면입니다. | ||
+ | {{: | ||