这是我的代码
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
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);
}