CI 묻고 답하기

제목 초보적인 에러 도와주세요 ㅠ
글쓴이 써티 작성시각 2012/04/19 17:58:19
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 19006   RSS
 CI 시작한지 몇시간 안된 초보 입니다.
컨트롤에서 모델 펑션 불러서 디비에 입력좀 하려는데 에러 뜨네요 ㅠ

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Test::$db

Filename: core/Model.php

Line Number: 51

test.php 가 컨트롤페이지 이구요.
모델 페이지에서 $this->db->insert('board', $this); 이렇게 썻는데 위와 같은 에러가 뜨네요
core폴더 아래는 아무것도 넣지 않았는데 무슨 파일이 들어가야 하나요?
view,control,model 폴더에만 파일 만들어서 넣으면 되는거 아닌가요? ㅠ

 다음글 DB에 입력하는 컨트롤러에서 post값 비어 있는지 체... (3)
 이전글 CI와 Facebook Login 연동 (8)

댓글

다니엘SEO / 2012/04/19 18:14:43 / 추천 0
중요한게 아니라면 컨트롤러와 모델의 소스를 모두 보여 주셔야 알 수 있지 않을까요 ^^;;
제 생각에는 분명 잘 못된 코드를 넣으신 것 같네요...
써티 / 2012/04/19 18:18:23 / 추천 0
 죄송합니다. 소스가 워낙 허접해서 ㅠㅠ

컨트롤소스 

 
class Test extends CI_Controller {
 
 
public function __construct() 
    {
        parent::__construct();
        $this->output->set_header("Content-Type: text/html; charset=UTF-8;");
$this->load->model("board_model");
        $this->load->helper('url');
    }
 
public function index()
{
$this->output->set_header("Content-Type: text/html; charset=UTF-8;");
$data['title'] = "타이틀";
$data['heading'] = "가나다라?";
$this->load->view('test_view', $data);
}
 
public function bene(){
$this->output->set_header("Content-Type: text/html; charset=UTF-8;");
$writer = "admin";
$contents = "test";
$this->board_model->write($writer, $contents);
}
 
 
}


모델 소스

<?php
class Board_model extends CI_Model
{
    public function __construct() 
    {
        parent::__construct();
    }
public function write($writer, $contents)
    {
 
$this->writer   = $writer;
        $this->contents = $contents;
 
        $this->db->insert('board', $this);
    }
 
}
?>

 
모델에 있는  write  함수를 호출하긴 하는데...
$this->db->insert('board', $this);  에서 걸리는듯 해요 ㅠ
 



다니엘SEO / 2012/04/19 18:25:06 / 추천 0
$this->writer   = $writer;
$this->contents = $contents;

이걸,

$data = array('필드명'=>$writer, '필드명'=>$contents);
$this->db->insert('테이블명', $data);

이렇게 해보세요.
변종원(웅파) / 2012/04/19 18:30:32 / 추천 0
매뉴얼에 잘 나와 있는 내용입니다. 꼼꼼이 다시 한번 읽어보세요.
써티 / 2012/04/19 18:43:35 / 추천 0
 public function write($writer, $contents)
    {
$data = array('writer'=>$writer, 'contents'=>$contents);
$this->db->insert('board', $data);
    }

이렇게 수정하였지만 계속 똑같은 에러가 뜹니다 ㅠ
흠.. 먼가 db설정이 잘못 된걸까요?
한대승(불의회상) / 2012/04/19 18:50:54 / 추천 0
autoload 에 db  라이브러리 설정 하지 않으 셨다면...

$this->load->database();
가 해결책이 될거 같군요.. ^^
써티 / 2012/04/19 20:15:00 / 추천 0
와 대박 ㅋㅋ 불의회상님 감사합니다. 덕분에 해결 됫어요 ^^
근데  말씀하신 autoload 에 db  라이브러리 설정은 어떻게 하는건가요??
다니엘SEO / 2012/04/19 21:28:44 / 추천 0
 config폴더에 autoload.php 파일이 있습니다.
DB관련 메뉴얼을 보시면 나옵니다~
써티 / 2012/04/19 21:45:26 / 추천 0
 네네 ㅋㅋ 제가 매뉴얼 정독을 안해서 빼먹은게 많네요 ㅠ 감사합니다~