0

this is my code

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

}

when i browse to http://tmdb.instaplace.me/movie/movieinfo/76341 it shows my page

but when i browse to http://tmdb.instaplace.me/movie/movieinfo/0

it shows a uncaught exception page when error reporting is set to development otherwise it shows a blank page

instead of showing blank page or uncaught exception on development i want to show a page that says "The id does not exist" for example or a 404 page but my problem is i can't figure it out how to do that, i am using this php-tmdb wrapper

the $movieId variable is the id from themoviedb.org to find the movie based on the id

1 Answer 1

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

      $this->_showMovieNotFoundFor($movieId) ;  } 

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

edit in response to question ====

you have to create the _show methods yourself. the idea is that you are just checking if a movie came back from the database or not. in the controller the simpler you can make your methods the easier it is to maintain. and unless a method in a controller has to be public, always make them private. in codeigniter you can just put an underscore before the method name to make it private. so the code

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

so if the $movie did NOT come back from database - then go to

$this->_showMovieNotFoundFor($movieId) ;

i included $movieId in case its needed for the error message.

otherwise you got $movie from database so go to

$this->_showFound($movie) ;

where if we just paste your code its going to be something like

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

} 
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.