CodeIgniter 한국사용자포럼 BETA
빠르고, 유연한 PHP Framework!

CI 묻고 답하기


코드이그나이트 입문자가 문의드립니다.      
하드코딩 5 1,164 0 0 2012-02-03 02:34:01
코드이그나이트 입문자입니다.
레퍼런스 한번 정독하고 코드를 작성해보고 있습니다.
관리자 모드에서 전체 게시판을 생성, 관리하는 코드를 작성해보려는데
뜻밖의 에러를 만나서 여러분께 도움요청하게 되었습니다.

일단 manager.php 라는 Controller 소스입니다.

<?php
class Manager extends CI_Controller {
 
 function __construct()
 {     
  parent::__construct();
 }

 public function index($page='main', $method='board_config'){}

 public function main($page){}

 public function board_config($page, $method)
 {
  $this->load->model('Board');
  
  $board_act = $this->input->get('board_act');
  $atc_page = '';
  switch($board_act)
  {
   case 'BoardList' :
    $data['content'] = $this->Board->board_list();
    $atc_page = 'list';
    break;
   case 'BoardCreate' :
    $this->load->helper(array('form', 'url'));
    $this->load->library('form_validation');

    $this->form_validation->set_rules('b_id', '게시판 ID', 'required');
    if($this->form_validation->run() == FALSE)
    {
     $atc_page = 'create';
    }
    else
    {
     $atc_page = 'success';
    }
    break;
   default :
    $data['content'] = $this->Board->board_list();
    $atc_page = 'list';
    break;
  }
  $this->load->view('include/manager/header', $data);
  $this->load->view('board/'.$atc_page, $data);
  $this->load->view('include/manager/footer');
 }
 public function article($page, $method){}
}
목록은 잘나옵니다.
부연 설명 드리자면
if(@$this->input->post($__VIEWSTATE) == FALSE) 이부분은 포스트백인지 아닌지 확인하는 부분입니다.
그리고 일단 게시물 작성화면까지는 잘 나옵니다.
그런데 작성화면에서 submit을 하면
에러 메세지는 Undefined property: Manager::$form_validation 이고
내용은 Fatal error: Call to a member function set_rules() on a non-object
에러를 발생시키네요.
그래서 여러가지로 코드도 확인하고 수정해보다가 $this->load->model('Board'); 이부분을 삭제하고
(게시물 작성부분에서는 기본 로직이 돌아가는지 확인중이라서 Board 모델의 함수를 호출하지 않습니다.)
다시 게시물을 작성해보니 잘 작동하는 겁니다.
아래는 Board.php 모델의 소스입니다.
<?php
class Board extends CI_Controller {
 function __construct()
 {     
  parent::__construct();
 }
 public function board_list(){
  $where = "";
  $this->db->order_by('name', 'desc');
  $query = $this->db->get('board_config');

        return $query->result_array();
 }
 public function board_create(){
 }
 public function board_read(){}
 public function board_update(){}
 public function board_delete(){}
}
?>
분명 컨트롤러 자체는 제대로 작동하는것 같습니다.
Board 모델을 부르면 form_validation 라이브러리가 작동하지 않는것 같습니다.
입문자라서 어디가 잘못된건지 몇시간째 고민해도 답이 보이지 않네요.
제가 실수한 부분이 어디인지 도움 부탁드립니다.

태그 : Undefined property, form_validation
  목록  

웅파 2012-02-03 07:06:56
  
 switch문중  BoardCreate 에 해당하는 부분에는 $data 변수가 없습니다.
웅파 2012-02-03 07:10:51
  
그리고 모델은 extends CI_Model 입니다.
느림보 2012-02-03 09:32:06
  

ㅜㅜ 저는 공부를 더 해야 하나봐요 폼검증은 아직 사용해보지 않아서 잘모르는 부분이지만 확실히 웅파님이 말씀하신대로 BoardCreate부분에서 $data 변수가 없네요....

하드코딩 2012-02-03 12:12:20
  

헉;;; 정말 저런 되지도 않은 실수를 하고 여기다 도움을 요청했다니 부끄럽기 그지없네요 ㅠ
웅파님 감사드립니다. $data변수는 문의글 올릴때 가독성때문에 필요없는 부분들 빼고 올리느라 뺏는데
제가 왜 CI_Controller를 상속 받았을까요 -_-;;
너무 부끄러워 이 문의글 삭제하고 싶지만 혹시라도 이런 실수겪는분 있을까봐 그냥 남겨두어야겠습니다.
웅파님 다시 한번 감사드립니다~

웅파 2012-02-03 13:18:57
  
하드코딩/ 있을 수 있는 실수입니다. ^^
번호 제   목 글쓴이 날짜 조회 추천수
6698 웅파님~~~ 마지막 하나 남았습니다.. 부탁드려요~~ [8] onlybell 2012-05-20 192 0
6693 파일 업로드가 될때 파일명이 똑같이 만들어지는 현상.. [1] ssukai 2012-05-17 98 0
6690 flashdata의 'status'에 대한 질문. [2] 닥스훈트 2012-05-17 70 0
6684 Call to a member function se.. [2] 코드원 2012-05-16 89 0
6676 KCP include 연동시 한글깨짐 문제... [4] 멋진경이 2012-05-16 121 0
6668 화면 전환의 깜빡임.. [6] 쿨교 2012-05-16 116 0
6662 Language Class 사용 시 한글 깨짐 현상 [2] 새우탕 2012-05-15 98 0
6655 [초보]간단한 DB쿼리 어케 해요? [9] 헛발이 2012-05-15 163 0
6651 페이스북 로그인이 안되네요 ㅠㅠ [3] 랑유 2012-05-15 122 0
6650 자체로 만든 helper가 load되지 않아요 ;.. [2] 랑유 2012-05-15 76 0
6647 MSSQL [3] 격물치지 2012-05-14 109 0
6645 상속을 구현하려면 어떻게 해야하나요? [2] 랑유 2012-05-14 98 0
6641 폼검증...조언좀 부탁드립니다. [2] 써티 2012-05-14 79 0
6637 조인후 결과물 뷰에 뿌리기 [2] 코드원 2012-05-14 109 0
6636 DB 자동로드 관련해서 질문이요.. [1] shygirl 2012-05-14 71 0
6628 html입력시 자꾸 xss 필터가 적용되네요;; [6] 다니엘SEO 2012-05-08 209 0
6622 aa.com/클래스/index/파라미터 에서 ind.. [4] mupa 2012-05-07 151 0
6614 이건 또 무슨 에러인지... [7] 코드원 2012-05-04 262 0
6607 cron으로 돌리려니 오류가 나네요;; [4] 다니엘SEO 2012-05-03 254 0
6606 CI 저작권은 어떻게 되나요? [1] 산수익힘책 2012-05-03 254 0