/** GET RANDOM RESULT **/ public function getRandomResult() { $numTotalFilms = 1000; // Get the first 1000 films $filmIds = Film::orderBy('rating', 'desc')->limit($numTotalFilms)->select('id')->lists('id')->toArray(); // Random retrieve 1 of them $offset = rand(0, $numTotalFilms - 1); $filmId = array_slice($filmIds, $offset, 1); // 5 of 6 times, we'll show director, instead of actor $value = rand(1, 6); if ($value == 1) { // 1 of 4 possibilities: actor/actress $name = Cast::where('id', '=', $filmId)->select('name')->lists('name')->first(); $filmIds = Cast::where('name', '=', $name)->select('id')->lists('id')->toArray(); $type = 'actor'; } else { $name = Director::where('id', '=', $filmId)->select('name')->lists('name')->first(); $filmIds = Director::where('name', '=', $name)->select('id')->lists('id')->toArray(); $type = 'director'; } $result = $this->_buildResultSingle($type, $name, $filmIds); return $result; }