我正在尝试这些代码,我想在找不到用户时抛出异常。我怎么能这样做?
非常感谢你。
未找到用户时我收到此错误;
Handler.php第102行中的NotFoundHttpException: 没有模型[App \ User]
的查询结果public function showProfile($username)
{
return $user = User::where('username', $username)->firstOrFail();
}
答案 0 :(得分:1)
要让Laravel在找不到用户时进行处理,请尝试:
public function showProfile($username)
{
$user = User::where('username', $username)->first();
if ($user === null) {
// do something, like return a view to an error page
return "User Not Found!"
}
// Code to execute if a user is found.
return $user;
}
如果您使用->firstOrFail()
,它将抛出一个异常,该异常将作为内部错误(在生产模式下时)返回给您的用户。
最好是用户->first()
,因为如果没有找到记录,它将返回null
,允许您自己处理问题。
或者你也可以像这样使用try catch块:
public function showProfile($username)
{
$user = User::where('username', $username)->first();
try {
$user = User::firstOrFail($user->id);
return $user;
} catch (Exception $e) {
return "User Not Found";
}
}