2015-08-21 2 views
0

это мой кодCodeigniter страница показать ошибку вместо того, чтобы ошибка Exception

public function movieInfo($movieId = null) { 

    // get the data 
    $movie = $this->repository->load($movieId); 

    $this->set_title(null); 

    $data = $this->includes; 

    $content_data = array(
     'movie' => $movie, 
    ); 

    $data['content'] = $this->load->view('movie/movie_info', $content_data, true); 
    $this->load->view($this->template, $data); 

} 

, когда я просматриваю к http://tmdb.instaplace.me/movie/movieinfo/76341 он показывает мою страницу

но когда я просматриваю к http://tmdb.instaplace.me/movie/movieinfo/0

это показывает неперехваченное страницу исключений когда отчет об ошибках настроен на разработку, в противном случае он показывает пустую страницу

вместо того, чтобы показывать пустую страницу или непроверенную e xception на развитие я хочу показать страницу, которая говорит: «Ид не существует», например, или 404 страниц но моя проблема я не могу понять, как сделать это, я использую этот php-tmdb wrapper

переменная $movieId является идентификатор из themoviedb.org найти фильм, основанный на ид

ответ

1
if(! $movie = $this->repository->load($movieId)){ 

     $this->_showMovieNotFoundFor($movieId) ; } 

else{ $this->_showFound($movie) ; } 

редактировать в ответ на вопрос ====

вы должны создать методы _show самостоятельно. идея состоит в том, что вы просто проверяете, вернулся ли фильм из базы данных или нет. в контроллере, вы можете упростить свои методы, чтобы их поддерживать. и если метод в контроллере должен быть общедоступным, всегда делайте его закрытым. в codeigniter вы можете просто поставить знак подчеркивания перед именем метода, чтобы сделать его закрытым. поэтому код

if(! $movie = $this->repository->load($movieId) 

так что если $ фильм не вернулся из базы данных - а затем перейти к

$this->_showMovieNotFoundFor($movieId) ; 

я включал $ movieId в случае его необходимости для сообщения об ошибке.

иначе вы получили $ фильм из базы данных, чтобы перейти к

$this->_showFound($movie) ; 

где, если мы просто вставить код его будет что-то вроде

function _showFound($movie){ 

    $this->set_title(null); 

    $data = $this->includes; 

    $content_data = array(
     'movie' => $movie, 
    ); 

    $data['content'] = $this->load->view('movie/movie_info', $content_data, true); 
    $this->load->view($this->template, $data); 

} 
+0

_showMovieNotFoundFor и _showFound является неопределенный метод? –

+0

не могли бы вы объяснить _showMovieNotFoundFor и _showFound ?? –

+0

ответил выше в редакции – cartalot

Смежные вопросы