Codeigniter显示错误页而不是异常错误


Codeigniter show error page instead Exception error

这是我的代码

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

当错误报告设置为development时,它显示一个未捕获的异常页,否则它显示一个空白页

而不是显示空白页或未捕获的开发异常,我想显示一个页面,说"id不存在",例如或404页但我的问题是我不知道怎么做,我在用这个php-tmdb包装

$movieId变量是themoviedb.org中查找基于id

的电影的id。
if( !  $movie = $this->repository->load($movieId) ){
      $this->_showMovieNotFoundFor($movieId) ;  } 
else{ $this->_showFound($movie) ;  } 

编辑在回答问题= = = =

你必须自己创建_show方法。其想法是,您只是检查电影是否从数据库返回。在控制器中,方法越简单,维护起来就越容易。除非控制器中的方法必须是公共的,否则总是将它们设为私有。在codeigniter中,您可以在方法名前加上下划线以使其私有。所以代码

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

所以如果$movie没有从数据库返回-然后转到

$this->_showMovieNotFoundFor($movieId) ;

i包含$movieId,以备错误信息需要。

否则你从数据库得到$movie所以转到

$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);
}