내 모든 페이지에서 머리보기와 발보기를로드해야합니다. 그러나 show_error
은 자체 템플릿을 사용합니다. 그리고이 템플릿을로드 한 후 실행을 중단하므로 원하는 경우 바닥 글이로드되지 않습니다.CodeIgniter에서 show_error()를 사용하여 뷰를로드하는 방법은 무엇입니까?
이 방법을 무시하거나 다른 방법이 있습니까?
내 모든 페이지에서 머리보기와 발보기를로드해야합니다. 그러나 show_error
은 자체 템플릿을 사용합니다. 그리고이 템플릿을로드 한 후 실행을 중단하므로 원하는 경우 바닥 글이로드되지 않습니다.CodeIgniter에서 show_error()를 사용하여 뷰를로드하는 방법은 무엇입니까?
이 방법을 무시하거나 다른 방법이 있습니까?
그래서이 방법을 사용하면 완벽하게 작동합니다. 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;
}
}
application/errors
디렉토리의 오류 메시지에 대한 사용자 정의 레이아웃을 만들 수 있습니다.
편집 : 당신은 단지 404 오류 페이지가 필요한 경우
config/route.php
에서 사용자 지정 경로 을 설정할 수 있습니다 : 기존 파일을 사용하려면 것은 다음 중 하나를 수행 할 수 있습니다 $route['404_override']
이하.
MY_Exceptions
을 사용하여 CI_Exceptions
클래스를 확장하고 일반 PHP를 사용하여 사용자를 해당 페이지로 리디렉션하십시오. 예외 클래스는 컨트롤러 앞에로드되므로 get_instance()
을 사용할 수 없습니다.알아,하지만 그건 내가 원하는 것이 아닙니다. 나는 모든 CSS, 자바 스크립트가 웹 사이트를 사용하여 이미 머리보기에서 모든 것을 반복하고 싶지 않습니다. –
@ChristianDechery 나는 내 메시지를 편집했다. –
답장을 보내 주셔서 감사합니다.하지만 컨트롤러가로드되기 전에 클래스가로드되었다고 했으므로 뷰를로드 할 수 없습니까? 그래서 다시 광장으로 돌아 왔습니다. 아마도 후크를 사용하는 것에 대해 생각했지만 똑같은 문제가 있었을 것입니다. 맞습니까? –
더 이상 작동하지 않습니다. –