제목 | load library가 안될 때 무얼 살펴야 하나요? | ||
---|---|---|---|
글쓴이 | letsgolee | 작성시각 | 2013/09/26 18:14:52 |
|
|||
안녕하세요. 코드이그나이터 배우길 시작한지 2달이 되갑니다. 이걸로 사무실에서 사용할 프로그램 제작 중인데 거기에 tank_auth가 로딩이 안되서 에러가 납니다. 문제는 앞부분이 동일한 다른 소스에서는 열리고 있다는 점입니다. 다음이 그 소스입니다. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Worklog extends CI_Controller { function __construct() { parent::__construct(); $this->load->library('session'); $this->load->helper('url'); $this->load->model('worklog_model'); $this->load->library('tank_auth'); $this->lang->load('tank_auth'); } public function index() { return $this->view_calendar(); } public function view_calendar($year = NULL, $month = NULL) { if (!$this->tank_auth->is_logged_in()) redirect(site_url('auth/')); ...에러가 다음과 같이 나옵니다: Severity: Notice Message: Undefined property: Worklog::$tank_auth Filename: controllers/worklog.php Line Number: 22 전에 세션이 동일 증상이어서 그냥 autoload에 등록을 해서 처리했는데 이것도 그런식으로 외에는 처리가 되지 않을까요? 이와 비슷한 경험이 있으신 분들 조언을 부탁합니다. |
|||
다음글 | 우분투 rewrite 설정 질문. (4) | ||
이전글 | 죄송합니다 다시 질문 좀 드리까합니다. (6) | ||
변종원(웅파)
/
2013/09/27 00:41:34 /
추천
0
ci log level 4로 찍어서 보세요. 중복호출되는지 등등..
|
letsgolee
/
2013/09/27 08:24:30 /
추천
0
저도 확인해 보았는데 tank_auth의 config와 language는 잘 올라옵니다. 그리고 _construct에 로그 메시지를 넣어보았더니 initialize는 되네요. 그런데 에러는 동일합니다.
|
milosz
/
2013/09/27 09:36:36 /
추천
0
profiler 결과도 올려주시면 참고가 될 것 같네요.
|
letsgolee
/
2013/09/27 10:04:14 /
추천
0
코어 파일들을 수정하여 로그 메시지를 넣도록 해서 테스트해보았는데 모든 게 정상적으로 tank_auth 변수도 생성이 되네요... 다음이 로그 일부입니다.
DEBUG - 2013-09-27 03:01:41 --> Library 'tank_auth' is loading... DEBUG - 2013-09-27 03:01:41 --> ci_load_class: 'tank_auth' is loading... DEBUG - 2013-09-27 03:01:41 --> ci_init_class: 'tank_auth' is creating... DEBUG - 2013-09-27 03:01:41 --> ci_init_class: class name is 'Tank_auth'... DEBUG - 2013-09-27 03:01:41 --> Config file loaded: application/config/tank_auth.php DEBUG - 2013-09-27 03:01:41 --> Library 'session' is loading... DEBUG - 2013-09-27 03:01:41 --> ci_load_class: 'session' is loading... DEBUG - 2013-09-27 03:01:41 --> ci_init_class: 'session' is creating... DEBUG - 2013-09-27 03:01:41 --> ci_init_class: class name is 'MY_Session'... DEBUG - 2013-09-27 03:01:41 --> Session Class Initialized DEBUG - 2013-09-27 03:01:41 --> Session routines successfully run DEBUG - 2013-09-27 03:01:41 --> Model Class Initialized DEBUG - 2013-09-27 03:01:41 --> Helper loaded: cookie_helper DEBUG - 2013-09-27 03:01:41 --> Tank_auth Class Initialized DEBUG - 2013-09-27 03:01:41 --> Language file loaded: language/english/tank_auth_lang.php ERROR - 2013-09-27 03:01:41 --> Severity: Notice --> Undefined property: Worklog::$tank_auth C:\public\htdocs\minolta\application\controllers\worklog.php 17로그를 보면 정상적으로 ci_init_class()에 의해 변수 이름 tank_auth가 생성이 됬습니다. 따라서 적어도 tank_auth는 object가 되어야 하나 var_dump($this->tank_auth)를 찍으니 NULL값이 나옵니다.... 미친 거같아요. |
변종원(웅파)
/
2013/09/27 10:12:55 /
추천
0
전에도 비슷한 사례가 딱 하나 있었습니다.
모든게 정상적인데 특정 부분만 안되는.... ci파일 다시 받아서 올려보세요. tank_auth도요. (저도 어제 좀 고생한게 하나 있었는데 컨트롤러명을 lib_test로 만들었는데 처음엔 잘 실행이 됐는데 어느 순간부터 404에러가 나더군요. index.php 넣어주면 안나고 library_test로 해도 에러가 나고 test_lib로 하면 안나고요. ㅋㅋ) |
letsgolee
/
2013/09/27 10:20:40 /
추천
0
코어 파일의 Loader class의 ci_init_class() 내부에서 var_dump($CI->$classvar)를 찍을 때는 정상적으로 나옵니다.
또한 $this->load->_ci_classes안에도 tank_auth는 정상적으로 등록되었네요. 결국 $CI가 문제인듯. 다른 것은 잘 연계가 되는데 왜 tank_auth만 문제인지... |
letsgolee
/
2013/09/27 17:17:49 /
추천
0
해결했습니다!!!
원인은 딴데 있었습니다. $this->load->library('tank_auth');를 하기 전 $this->load->model('worklog_model');이 있는데 여기에 문제가 있었습니다. 만들면서 카피/페이스트 작업을 했더니 엉뚱한데서 페이스트를 해서 Worklog_model extends CI_Controller가 되었네요.
그런데 tank_auth붙이기 전에는 잘 작동을 해서 전혀 문제를 발견하지 못하고 있다가 이번에 tank_auth가 제대로 붙지 않는 이유가 혹시 앞뒤로 문제가 있을 것 같은 생각이 들어 소스를 일일이 확인하다 발견하고 제대로 extends CI_Model로 바꾸니 잘 됩니다. 여러모로 답글 주신분들 감사합니다!!!
|
변종원(웅파)
/
2013/09/27 18:07:54 /
추천
0
해결되서 다행이네요. ^^
|