Я работаю над API Halo 5, и пользователи могут зарегистрироваться с помощью своих игровых тегов. Когда они это сделают, они могут войти в систему, и когда они войдут в систему, они могут перейти в свой профиль, чтобы посмотреть их статистику для Halo 5. Но, очевидно, некоторые пользователи не будут вводить законные игры. И это было, мне нужна какая-то проверка в моем контроллере, которая возвращает представление для профиля.Проверьте, есть ли ошибка 404 в контроллере. Laravel 5
Вот простой пример контроллера:
public function index ($slug) {
// Emblem URL.
$getPlayerEmblemImage = app('App\Http\Controllers\Api\GetGeneralStatsController')->getPlayerEmblemImage($slug);
// Get General Player Arena Stats
$playerGeneralStats = app('App\Http\Controllers\Api\GetGeneralStatsController')->getPlayerArenaStats($slug);
$playerGeneralStatsArray = $this->getPlayerGeneralStatsArray($playerGeneralStats);
// Get the Spartan Rank and XP
$spartanRank = json_decode($playerGeneralStatsArray['SpartanRank'], true);
$XP = json_decode($playerGeneralStatsArray['Xp'], true);
$Gamer_Tag = json_encode($playerGeneralStatsArray['Gamer_Tag'], true);
$user = User::whereSlug($slug)->firstOrFail();
return view('profile.index',
compact(
'user',
'spartanRank',
'XP',
'getPlayerEmblemImage',
'Gamer_Tag',
)
);
}
Моя проблема, если пользователь не существует, то он выдает эту ошибку:
ClientException in RequestException.php line 107: Client error:
GET https://www.haloapi.com/profile/h5/profiles/some%20useer/spartan
resulted in a404 Not Found
response:
Как я могу сделать некоторые проверки, и возвращать разные результаты, если этот игрок не найден?
Возможно, что-то вроде этого?
public function index ($slug) {
if (// Doesnt exist, show this) {
// do some other code here
return view('profile.index', compact('user'))
} else {
// Code here....
return view('profile.index',
compact(
'user',
'spartanRank',
))
}
}
Позвольте мне попробовать, что – David
Что вы имеете в виду в том комментарии, когда вы говорите ** Заменить Exception с конкретным исключением вы хотите поймать **? – David
вместо исключения, используйте 'NotFoundException' – jaysingkar