2013-11-15 1 views

답변

2

그래서이 방법을 사용하면 완벽하게 작동합니다. Yan Berk이 제안한대로 CI_Exceptions을 확장했지만 get_instance을 사용하고 내보기를로드 할 수있었습니다.

class MY_Exceptions extends CI_Exceptions { 
private $CI; 
private $dist; 

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

function show_error($heading, $message, $template = 'error_general', $status_code = 500) { 
    $head_data = array("title"=>$this->dist['site_title'].": Error"); 
    $head = $this->CI->load->view('head', $head_data, TRUE); 
    $body = $this->CI->load->view('error_body', $message, TRUE); 

    echo $head; 
    echo $body; 
} 
} 
+0

더 이상 작동하지 않습니다. –

2

application/errors 디렉토리의 오류 메시지에 대한 사용자 정의 레이아웃을 만들 수 있습니다.

편집 : 당신은 단지 404 오류 페이지가 필요한 경우

  1. , 당신은 config/route.php에서 사용자 지정 경로 을 설정할 수 있습니다 : 기존 파일을 사용하려면

    것은 다음 중 하나를 수행 할 수 있습니다 $route['404_override'] 이하.

  2. 모든 오류 메시지를 처리해야하는 경우 MY_Exceptions을 사용하여 CI_Exceptions 클래스를 확장하고 일반 PHP를 사용하여 사용자를 해당 페이지로 리디렉션하십시오. 예외 클래스는 컨트롤러 앞에로드되므로 get_instance()을 사용할 수 없습니다.
+0

알아,하지만 그건 내가 원하는 것이 아닙니다. 나는 모든 CSS, 자바 스크립트가 웹 사이트를 사용하여 이미 머리보기에서 모든 것을 반복하고 싶지 않습니다. –

+0

@ChristianDechery 나는 내 메시지를 편집했다. –

+0

답장을 보내 주셔서 감사합니다.하지만 컨트롤러가로드되기 전에 클래스가로드되었다고 했으므로 뷰를로드 할 수 없습니까? 그래서 다시 광장으로 돌아 왔습니다. 아마도 후크를 사용하는 것에 대해 생각했지만 똑같은 문제가 있었을 것입니다. 맞습니까? –

관련 문제