2016-08-08 5 views
3

show_404 메서드를 CI_Exceptions에서 무시하려고 시도했지만 MY_Exceptions이로드되지 않습니다.CodeIgniter가 확장되지 않습니다. MY_Exceptions

MY_Exceptions은 내가 show_404()를 호출 할 때

그것은 내가 얻을 코드

<?php 
class MY_Exceptions extends CI_Exceptions { 
    function show_404(){ 
     header("HTTP/1.1 404 Not Found"); 
     $CI =& get_instance(); 
     $CI->load->view('header.php'); 
     $CI->load->view('err/custom404.php'); 
     $CI->load->view('footer.php'); 
    } 
} 

의/응용 프로그램/핵심에 위치한 두 개의 치명적인 오류

Fatal error: Class 'MY_Exceptions' not found in C:\workspace\ictp-tv-main\system\core\Common.php on line 196

Fatal error: Class 'MY_Exceptions' not found in C:\workspace\ictp-tv-main\system\core\Common.php on line 196

내가 일을 다른 확장 수업을 잘 접두사가 붙은 MY_

EDIT After @Tpojka suggestion my code is

class MY_Exceptions extends CI_Exceptions { 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->CI =& get_instance(); 
    } 

    public function show_404($page = '', $log_error = TRUE){ 

     header("HTTP/1.1 404 Not Found"); 

     $this->CI->load->view('header.php'); 
     $this->CI->load->view('err/custom404.php'); 
     $this->CI->load->view('footer.php'); 

    } 
} 

그리고 이제 404 페이지가 비어 있습니다.

편집

솔루션

우리는 오류가 아닌 단순로드 뷰를 ECHO해야합니다.

public function show_404($page = '', $log_error = TRUE){ 
    header("HTTP/1.1 404 Not Found"); 
    echo $this->CI->load->view('header.php',array('PAGE_TITLE'=>'Page not found'),true); 
    echo $this->CI->load->view('err/custom404.php',null,true); 
    echo $this->CI->load->view('footer.php',null,true); 
    exit(4); 
} 

고맙습니다. @Tpojka 내 마음을여십시오.

답변

2

내가 위의 코드를 편집

<? 
class MY_Exceptions extends CI_Exceptions 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function show_404($page = '', $log_error = TRUE) 
    { 
     if (is_cli()) 
     { 
      $heading = 'Not Found'; 
      $message = 'The controller/method pair you requested was not found.'; 
     } 
     else 
     { 
      $heading = '404 Page Not Found This Time'; 
      $message = 'The page you requested was not found.'; 
     } 
     // By default we log this, but allow a dev to skip it 
     if ($log_error) 
     { 
      log_message('error', $heading.': '.$page); 
     } 
     echo $this->show_error($heading, $message, 'custom404', 404);//custom404 is in APPPATH.'views/errors/html/custom404.php' 
     exit(4); // EXIT_UNKNOWN_FILE 
    } 
} 

이 방법을 시도하십시오. 나는 연구를했고 이것으로 끝났다. 방금메서드를 CI_Exceptions 클래스에서 복사하고 어떤 변경 작업을 수행 할 수 있는지 보았습니다. 메시지, 헤더를 설정하고 템플릿을 호출 할 수도 있습니다. 이 방법으로 재생할 수 있습니다. 또한 $this->load->view('header')$this->load->view('footer')을 파일 custom404.php에 넣으시기 바랍니다. 파일 custom404.php에서 파일 $heading$message을 반향시킵니다.

+0

이 방법은 변경되지만 동일한 오류가 발생합니다. 그리고 show_404 서명이 다른 것을 알았습니다. 이제 올바른 메소드가 호출되지만 빈 페이지가 표시됩니다. 보기가 비어있는 것처럼 보입니다 – lcssanches

+0

내 마음을 열어 줘서 고마워! – lcssanches

+1

해피 코딩. #SOreadytohelp – Tpojka

관련 문제