문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
software:codeignter_tutorial [2011/08/17 13:44] sivanim |
software:codeignter_tutorial [2011/08/17 14:54] sivanim [CONFIG 설정] |
||
---|---|---|---|
줄 12: | 줄 12: | ||
* 제대로 설치 하시고 웹에 접을 했을 때 아래와 같은 화면이 뜹니다. | * 제대로 설치 하시고 웹에 접을 했을 때 아래와 같은 화면이 뜹니다. | ||
- | {{: | + | {{: |
====== 설정 ====== | ====== 설정 ====== | ||
* 아래 설정 중 필 수 적인 것은 없습니다. 상황과 편의를 위해서 한 것이기 때문에 자신에게 맞게 더 설정하거나 변경하셔야 합니다. | * 아래 설정 중 필 수 적인 것은 없습니다. 상황과 편의를 위해서 한 것이기 때문에 자신에게 맞게 더 설정하거나 변경하셔야 합니다. | ||
줄 46: | 줄 45: | ||
===== CONFIG 설정 ===== | ===== CONFIG 설정 ===== | ||
- | * config.php 파일은 application\config 있습니다. | + | * config.php 파일은 application/config 있습니다. |
* $config[' | * $config[' | ||
* 위 index_page 설정은 controller가 페이지 이동할 때도 컨트롤러 앞에 자동으로 index.php 페이지를 붙여 준다는 것입니다. | * 위 index_page 설정은 controller가 페이지 이동할 때도 컨트롤러 앞에 자동으로 index.php 페이지를 붙여 준다는 것입니다. | ||
* 주소창에 index.php 항상보이면 보기 안좋기 때문에 뺍니다. 대신 .htaccess로 index.php 를 주소창에 보이지 않지만 가장 먼저 접근 하는 페이지로 설정 할 겁니다. | * 주소창에 index.php 항상보이면 보기 안좋기 때문에 뺍니다. 대신 .htaccess로 index.php 를 주소창에 보이지 않지만 가장 먼저 접근 하는 페이지로 설정 할 겁니다. | ||
- | |||
===== INDEX 설정 ===== | ===== INDEX 설정 ===== | ||
줄 71: | 줄 69: | ||
====== 활용 ====== | ====== 활용 ====== | ||
테스트에서 DB는 Mysql을 사용했고 test란 테이블을 하나 만들었습니다. 테이블에 Id int(11)autoincrease, | 테스트에서 DB는 Mysql을 사용했고 test란 테이블을 하나 만들었습니다. 테이블에 Id int(11)autoincrease, | ||
+ | 이제 test 테이블에 데이터를 쓰고, 읽고 , 수정, 삭제 하는 간단한 프로그램을 만들어 보도록 하겠습니다. | ||
===== 단계1 ===== | ===== 단계1 ===== | ||
줄 85: | 줄 84: | ||
* 그렇게 작성하고 웹페이지 접근하면 아래와 같은 페이지가 나옵니다. (ex: http:// | * 그렇게 작성하고 웹페이지 접근하면 아래와 같은 페이지가 나옵니다. (ex: http:// | ||
- | {{: | + | {{: |
* 위는 컨트롤러를 설정한 것으로 index()는 기본적으로 가장 먼저 실행되는 함수 입니다. | * 위는 컨트롤러를 설정한 것으로 index()는 기본적으로 가장 먼저 실행되는 함수 입니다. | ||
* 이제 컨트롤러 안에 아래와 같은 내용을 삽입합니다. | * 이제 컨트롤러 안에 아래와 같은 내용을 삽입합니다. | ||
- | <php> | + | |
<? | <? | ||
class Blog extends CI_Controller { | class Blog extends CI_Controller { | ||
줄 109: | 줄 108: | ||
public function index() | public function index() | ||
{ | { | ||
- | / | + | |
- | | + | /* models 폴더에서 |
+ | | ||
+ | /* data 배열의 | ||
+ | | ||
/ | / | ||
줄 126: | 줄 128: | ||
public function update() | public function update() | ||
{ | { | ||
- | /* get_where 함수와 3번째 세그번트 값을 이용하여 test 테이블의 특정 id 데이터만 가지고 옵니다.*/ | + | /* get_where 함수와 3번째 세그번트 값을 이용하여 test 테이블의 특정 id 데이터만 가지고 옵니다. |
+ | 간단한 데이터를 위처럼 모델을 사용하지 않고 바로 호출하는게 더 간단 할 수 있습니다.*/ | ||
$data[' | $data[' | ||
/* views 폴더의 update.php 파일을 호출합니다. */ | /* views 폴더의 update.php 파일을 호출합니다. */ | ||
줄 163: | 줄 166: | ||
?> | ?> | ||
- | <? | + | |
===== 단계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 화면입니다. | ||
+ | {{: | ||