2011-10-05 3 views
1

CodeIgniter를 사용하여 내 사이트를 코딩하고 있습니다. MVC 나 다른 유형의 개발 패턴을 사용하는 것은 이번이 처음입니다. 나는 놀이터를 만들고 시스템의 프로토콜에 익숙해지기 위해 CI 사이트에서 비디오 자습서를 사용하고 있습니다.CodeIgniter 컨트롤러 클래스 구현에서 멈춤

방금 ​​첫 번째 문제가 발생했으며 상위 클래스와 관련이 있습니다.

내가 블로그를 만들려고 두 번째 튜토리얼에 오전이있다 : 나는 function Test() 내부의 콘텐츠를하지 않고 페이지를로드 할 때

<?php 

class Test extends CI_Controller { 

    function Test() 
    { 
     parent::CI_Controller(); 

     $this->load->scaffolding('entries'); 
    } 

    function index() 
    { 
     $data['muck'] = 'test test test'; 
     $data['kookoo'] = 'howdy howdy hi'; 
     $data['hi'] = 'holla'; 
     $data['yo'] = 'fa la la'; 
     $data['zoom'] = '1234'; 
     $data['array'] = array('hi','howdy','hey','sup'); 
     $this->load->view('test_view', $data); 
    } 

} 

?> 

나는 시스템이 "컨트롤러"를 찾을 수 없습니다 것으로 나타났습니다. 나는이 튜토리얼이 이전 버전의 CI를 사용하고 있으며 "CI_Controller"가 클래스 컨트롤러의 적절한 이름이라는 것을 발견했다. 위의 코드로 이제이 오류가 발생합니다.

Fatal error: Call to undefined method CI_Controller::CI_Controller() in /Users/michaelsanger/Sites/CodeIgniter/application/controllers/test.php on line 7 

나는 그것을 정의 할 수없는 이유를 잘 알고 있습니다.

미리 감사드립니다.

답변

4

다른 버전의 것들을 혼합합니다. 1.7은 주로 PHP4 스타일의 클래스 생성에 초점을 맞추고 있습니다 (생성자와 클래스 이름이 같은 메서드를 사용하는 대신에 __construct()라는 전용 메서드를 사용할 수 있음). php 5)

스카 폴딩은 최신 버전에 존재하지 않습니다. 당신은 당신이 어느 것을 사용하고 있는지 말하지 않았습니다, 나는 V2라고 생각합니다. 기존 버전을 사용하는 경우 1) 최신 클래스를 사용하십시오. 2) 상위 클래스는 컨트롤러 일뿐입니다.

그것은 물론 당신이 "자동로드"라이브러리는 모든 메소드가 사용할 갖고 싶어하지 않는 한에가, 부모 컨트롤러를 확장 필요하지 않은 사용자들은이

class Test extends CI_Controller { 

    function __construct() 
    { 
     parent::__construct(); 

     //$this->load->scaffolding('entries'); 
    } 

    function Test() 
    { 
     // this will call a method name test, so maps to a URL like Test/test 

    } 

} 

주처럼해야한다.

CI는 위대하고 쉬운 문서로 알려져 있습니다. 따라서 인터넷에서 약간 오래된 (특히 오래된 용어 인 경우) user_guide으로 배송하는 경우 의심 스럽거나 문제가있을 때마다 설치 파일과 함께 로컬 브라우징).

예를 들어, 당신은 곧 (오늘의로, 그리고 튜토리얼) 당신의 조각 뭐가 잘못 볼 수는 controllers 페이지를 확인

UPDATE : 당신이 설정하는 경로에서

라우트는 컨트롤러 (/ 메소드)에 매핑됩니다. 는 변경 로그를 인용 :

Version 2.0.0

Release Date: January 28, 2011 Hg Tag: v2.0.0

General changes 

PHP 4 support is removed. CodeIgniter now requires PHP 5.1.6. 
Scaffolding, having been deprecated for a number of versions, has been removed. 

그래서 난 당신이 발판으로 이제 무슨 뜻인지 모르겠어요. 당신의 경로를 보면, CI는 "scaffolding_trigger"라는 컨트롤러를 기대하며 컨트롤러 "scaffolding"으로 경로를 변경해야합니다. 그 중 하나가 있으면 404 오류가 발생합니다. 제발, 버전을 선택하고 그것에 충실, 물건을 섞어하지 마십시오! 튜토리얼에 의존하지 않아도 최신 변경 내용이 항상 최신 상태는 아닙니다.

+0

fyi - 경로에서 스캐 폴딩을 만들었습니다.PHP $ route [ 'scaffolding_trigger'] = "스캐 폴딩"; – LightningWrist

+0

그리고 그것보다 나에게 이전에 더 나은 404 오류를 찾을 수 없습니다. – LightningWrist

+1

@LightningWrist 내 답변을 업데이트했습니다. –

관련 문제