사용자 도구

사이트 도구


software:codeignter_tutorial

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
software:codeignter_tutorial [2011/08/17 13:47]
sivanim
software:codeignter_tutorial [2011/08/17 14:54] (현재)
sivanim [INDEX 설정]
줄 12: 줄 12:
   * 제대로 설치 하시고 웹에 접을 했을 때 아래와 같은 화면이 뜹니다.   * 제대로 설치 하시고 웹에 접을 했을 때 아래와 같은 화면이 뜹니다.
  
-{{:software:1-1.jpg?400x400}} +{{:software:1-1.jpg?200 |}}
 ====== 설정 ====== ====== 설정 ======
   * 아래 설정 중 필 수 적인 것은 없습니다. 상황과 편의를 위해서 한 것이기 때문에 자신에게 맞게 더 설정하거나 변경하셔야 합니다.   * 아래 설정 중 필 수 적인 것은 없습니다. 상황과 편의를 위해서 한 것이기 때문에 자신에게 맞게 더 설정하거나 변경하셔야 합니다.
줄 46: 줄 45:
 ===== CONFIG 설정 ===== ===== CONFIG 설정 =====
  
-  * config.php 파일은 application\config 있습니다.+  * config.php 파일은 application/config 있습니다.
   * $config['index_page'] = 'index.php' 를  $config['index_page'] = '' 로 바꾸어 줍니다.   * $config['index_page'] = 'index.php' 를  $config['index_page'] = '' 로 바꾸어 줍니다.
     * 위 index_page 설정은 controller가 페이지 이동할 때도 컨트롤러 앞에 자동으로 index.php 페이지를 붙여 준다는 것입니다.      * 위 index_page 설정은 controller가 페이지 이동할 때도 컨트롤러 앞에 자동으로 index.php 페이지를 붙여 준다는 것입니다. 
줄 86: 줄 85:
  
   * 그렇게 작성하고 웹페이지 접근하면 아래와 같은 페이지가 나옵니다. (ex: http://127.0.0.1)   * 그렇게 작성하고 웹페이지 접근하면 아래와 같은 페이지가 나옵니다. (ex: http://127.0.0.1)
-{{:software:3-1.jpg}}+{{:software:3-1.jpg?nolink&200|}}
  
   * 위는 컨트롤러를 설정한 것으로 index()는 기본적으로 가장 먼저 실행되는 함수 입니다.    * 위는 컨트롤러를 설정한 것으로 index()는 기본적으로 가장 먼저 실행되는 함수 입니다. 
줄 110: 줄 109:
  public function index()  public function index()
  {  {
-    /*test라는 table의 내용을 query라는 이름으로 가지고 옵니다.*/ +     
-    $data['query'] = $this->db->get('test');+    /* models 폴더에서 test.php 모델을 호출합니다. */ 
 +    $this->load->model('test'); 
 +    /* data 배열의 query란 이름으로 test 모델에서 져온 엔트리 값을 넣어 줍니다*/ 
 +    $data['query'] = $this->test->all_entries();
          
     /*main이라는 뷰 즉 main.php를 views 폴더에서 호출합니다. $data 배열도 같이 보냅니다.*/     /*main이라는 뷰 즉 main.php를 views 폴더에서 호출합니다. $data 배열도 같이 보냅니다.*/
줄 127: 줄 129:
  public function update()  public function update()
  {  {
-     /* get_where 함수와 3번째 세그번트 값을 이용하여 test 테이블의 특정 id 데이터만 가지고 옵니다.*/+     /* get_where 함수와 3번째 세그번트 값을 이용하여 test 테이블의 특정 id 데이터만 가지고 옵니다. 
 +     간단한 데이터를 위처럼 모델을 사용하지 않고 바로 호출하는게 더 간단 할 수 있습니다.*/
      $data['query'] = $this->db->get_where('test',array('id' => $this->uri->segment(3)));      $data['query'] = $this->db->get_where('test',array('id' => $this->uri->segment(3)));
      /* views 폴더의 update.php 파일을 호출합니다. */      /* views 폴더의 update.php 파일을 호출합니다. */
줄 167: 줄 170:
  
 ===== 단계2 ===== ===== 단계2 =====
 +컨트롤러에서 호출했던 모델을 만들어 보겠습니다. 모델은 내부적으로 돌아 가는 비지니스 로직 또는 데이터 입력,수정,삭제,조회 같은 기능을 합니다.
 +
 +  * 모델 이름은 test라고 하겠습니다. application/models 폴더에 test.php 란 파일을 생성합니다.
    
 +<?
 +class test  extends CI_Model { 
 +   
 +  /*전역 변수 입니다. 주로 컬럼 값을 미리 정해 놓고 사용할 때 전역 변수로 사용합니다. 하지만
 +  전역 변수를 사용하게 되면 메소드 마다 사용되는 컬럼 값이 틀려 질 때 오류가 날 수 있으니깐 조심해서 사용해야 합니다.*/
 + var $title = ''; 
 + var $contents = ''; 
 +  /* 생성자 입니다.*/
 + function __construct() 
 +
 + parent::__construct(); 
 +
 +  /* test 테이블의 모든 데이터를 가지고 오는 메소드 입니다.*/
 + function all_entries() 
 +
 + /*test 테이블의 데이터를 가지고 옵니다. */
 + $query = $this->db->get('test'); 
 + return $query; 
 +
 +
 + /* data를 insert 하는 함수 입니다. 특정 sql을 이용하지 않고 CI에서 제공하는 insert 함수를 사용합니다.
 + 배열안의 데이터 이름과 컬럼 명이 같으면 자동으로 insert 됩니다.*/
 + function insert_entry() 
 +
 + /*이렇게 직접 컬럼 값을 $_POST를 이용하여 설정 하셔도 되고 아니면 아래 사용한 것 처럼
 + $_POST로 바로 데이터를 보내셔도 됩니다. 아래와 같이 사용할 경우 form안에 엘레먼트 id 가 db 필드 명과 같아야 합니다.*/
 + //$this->title = $_POST['title']; 
 + //$this->contents = $_POST['contents']; 
 +
 + /*post로 받은 폼 값을 바로 넘기겠습니다.*/
 + $this->db->insert('test', $_POST); 
 + /* redirect로 index페이지로 넘어 갑니다.*/
 + redirect('blog/index/');
 +
 +  /* data를 update 하는 메소드 입니다.*/
 + function update_entry() 
 +
 + /*전역 변수로 선언한 변수에 post 넘어온 데이터를 넣습니다.*/
 + $this->title = $_POST['title']; 
 + $this->contents = $_POST['contents']; 
 +  
 +    /* 3번째 세그먼트(세그먼트는 주소 창에 /로 구분되어 있는 데이터 입니다.) ID를 기준하여 update 합니다.*/
 + $this->db->update('test', $_POST, array('Id' => $_POST['Id'])); 
 + redirect('blog/index/');
 +
 +
 + /* 데이터를 delete 하는 메소드 입니다. 사용되지는 않습니다. 간단하기에 controller에 바로 넣었습니다.*/
 + function delete_entry() 
 +
 + $this->db->delete('mytable', array('Id' => $Id)); 
 + redirect('blog/index/');
 +
 +
 +}
 +?>
 +
 +
 +===== 단계3 =====
 +View 를 만들어 보겠습니다. View는 클라이언트에게 보여지는 화면입니다. 이번 sample에는 View는 main, update, write 페이지로 나뉩니다. View 파일은 전부 
 +apllication/Views 폴더에 넣어 주시면 됩니다.
 +
 +
 +
 +==== main.php ====
 +  * main 페이지 소스 입니다. main 페이지는 가장 먼저 화면에 보여지는 부분으로 데이터를 보여주고 입력, 수정, 삭제를 할 수 있습니다. <html> 테그가 빠져있습니다. 참고 하십시요. 
 +
 +<head>
 +<title> tea-gyu </title>
 + <meta charset="utf-8">
 +</head>
 +<body>
 +
 + <table width="800" height="400" border="1">
 + <tr>
 + <td>
 +
 +
 +<?
 +/* $query에 각 row별 result 값을 받아서 item 배열에 넣습니다. row가 없을 때 까지 진행 됩니다.*/
 +foreach($query->result() as $item){
 +?>
 +<!-- title 값을 출력 합니다.-->
 +<h3><?=$item->title?></h3> 
 +<!-- contents 값을 출력 합니다.-->
 +<p><?=$item->contents?></p>
 +<hr/>
 +
 +<!-- anchor 함수는 페이지 링크를 쉽게 해주는 uri 핼퍼의 함수입니다.-->
 +<?=anchor('blog/update/'.$item->Id,'수정')?>
 +<?=anchor('blog/delete/'.$item->Id,'삭제')?>
 +<hr/>
 +
 +
 +<?}?>
 +
 +<?=anchor('blog/write','데이터 쓰기')?>
 +
 +
 + </td>
 + </tr>
 +</body>
 +
 +==== write.php ====
 +  * write.php는 데이터를 입력하는 view 입니다. <html> 태그가 빠져있습니다.
 +<head>
 +<title> tea-gyu </title>
 + <meta charset="utf-8">
 +</head>
 +<body>
 + <!-- form 핼퍼를 사용한 form_open 입니다. form 설정을 쉽게 해줍니다.-->
 +   <?=form_open('blog/data_insert')?>
 +   
 +  <input type = "text" name = "title"></input>
 +  <br/>
 +  <textarea name="contents"></textarea>
 +  <br/>
 +  <input type= "submit" value="input" />
 +   <?=anchor('blog/index','main')?>
 +  </form>
 +</body>
 +==== update.php ====
 +  * update View는 데이터를 udate 할 때 사용하는 view 입니다. write.php 와 거의 동일합니다. <html> 태그가 빠져 있습니다.
 +<head>
 +<title> tea-gyu </title>
 + <meta charset="utf-8">
 +</head>
 +<body>
 + <?
 + if ($query->num_rows() > 0) 
 + {
 + $item = $query->row();
 +
 + }
 + ?>
 +
 +   <?=form_open('blog/data_update')?>
 +   <?=form_hidden('Id',$this->uri->segment(3))?>
 +   
 +  <input type = "text" name = "title" value="<?=$item->title?>"></input>
 +  <br/>
 +  <textarea name="contents" ><?=$item->contents?></textarea>
 +  <br/>
 +  <input type= "submit" value="update" />
 +  </form>
 +</body>
 +
 +
 +===== 단계4 =====
 +
 +  * main.php 화면입니다. 
 +
 +{{:software:main.jpg?nolink&200|}}
 +
 +  * write.php 화면입니다.
 +{{:software:write.jpg?nolink&200|}}
 +
 +
 +  * update.php 화면입니다.
 +{{:software:update.jpg?nolink&200|}}
  
software/codeignter_tutorial.1313556452.txt.gz · 마지막으로 수정됨: 2011/08/17 13:47 저자 sivanim