개발 Q&A

제목 error_reporting을 사용하여..
글쓴이 템포 작성시각 2013/10/08 09:04:25
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 15328   RSS

에러 표시가 되지 않던 부분을 잡고 있는데 이 부분은 어디서 나오는 에러인지 모르겠네요

Undefined property: CI::$mobile core/Model.php 이 검색어로 구글링을 해보니 ..

config/autoload에서 database를 로드 해줘서 그렇다는 거 같은데 아래와 같은 에러 해결 방법은 없는건가요 ??

(error_reporting 설정은 php.ini 파일에서가 아닌 해당 model에서 construct 맨 아랫 부분에 설정해놓고 테스트 했습니다.)

Severity: Notice

Message: Undefined property: CI::$test

Filename: core/Model.php

Line Number: 51

 다음글 order_by 질문 (3)
 이전글 curl 사용하기 (5)

댓글

빛그림 / 2013/10/08 09:12:26 / 추천 0
해결방법이야 물론 있죠. 그러니 다른 분들은 잘 쓰고 계신 것이니까요.
에러의 원인은 데이터베이스 접속 정보가 올바르지 않은 것이 아닐까 싶습니다.
템포 / 2013/10/08 09:19:20 / 추천 0
빛그림님 답변 감사합니다.
데이터베이스 접속 정보가 원할하지 않았다면 데이터를 가져오거나 입력하는 부분에 있어서 에러가 뜨지 않았을까요 ? 저 에러는 특정 상황에서만 뜨는 것 같은데 ..
(게시판에서 글을 읽고 목록으로 돌아갔을 경우에만 .. )

혹시 error_reporting 위치가 잘못 되었나 싶어서 php.ini 파일에서
error_reporting = E_ALL  & ~E_NOTICE 이 부분을 -> error_reporting = E_ALL 로 해놓고
모델에서 error_reporting 부분을 제외하니 에러가 뜨지는 않는데 이 부분이 에러가 무시되고 있는건지
정상적으로 처리된건지 잘 모르겠네요.. ( 모델 생성자 쪽에 error_reporting을 적을 시 위와 같은 에러 문구는 발생...)

빛그림님 말씀대로 db쪽은 좀 더 찾아보도록 하겠습니다.


------------------------------------
에러를 찾았네요.. 데이터베이스쪽은 아니고, 해당 model 부분에 $this->test 이라고 체크 된 부분을 인식하지 못했던 것네요!


빛그림 / 2013/10/08 09:50:14 / 추천 0
 DB조회가 잘 된다는 언급이 없으셔서 DB접속의 문제려니 생각했었습니다.
문제가 해결되서 다행입니다. ^^
변종원(웅파) / 2013/10/08 10:23:47 / 추천 0
저번 책 출간기념 세미나에서 했던 내용중에 개발자는 에러와 경고를 구분할 줄 알아야 한다는게 있습니다.

에러 메세지에 답이 있구요.

notice Undefined property: CI::$test

가장 흔하게 올라오는 내용입니다. php는 c나 자바와 다르게 변수 선언을 미리하지 않고 사용할 수 있습니다.
그러나 ci에서는 미리 선언하지 않은 변수를 사용했을 경우 위와 같은 경고를 띄웁니다.

코딩습관을 바꾸시는게 좋고 위와 같은 경고는 실행하는데 문제가 없어서 index.php에서 ENVIRONMENT 상수를 production 으로 바꾸면 화면출력이 되지 않습니다.

제일 좋은 건 코딩습관을 바꾸는 겁니다.

템포 / 2013/10/08 14:50:46 / 추천 0
웅파님 답변 감사합니다.

ci에서 사용 시 변수를 따로 선언해줘야 하는군요. 
저도 하드코딩이라고 해야하는건지..(공용 함수를 만드는게 아니라.. 필요하면 만들어서 씀..)
그래서 그런건지 코드가 좀 엉망진창입니다...

코드 습관은 계속 바꿀려고 하지만 한번에 잘 되지는 않네요..

에러와 경고 좀 더 알아봐야겠습니다!