这是我的代码
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
时当错误报告设置为开发时,它会显示未捕获的异常页面,否则显示空白页
而不是在开发时显示空白页面或未捕获的异常我希望显示一个页面,其中显示"该ID不存在"例如,或404页 但我的问题是我无法弄清楚如何做到这一点,我正在使用它 php-tmdb wrapper
$movieId
变量是来自themoviedb.org的id,用于根据id找到电影
答案 0 :(得分:1)
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) ;
我包含了$ 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);
}