如何在Laravel 5.2中找不到用户时抛出异常

时间:2016-01-06 21:53:05

标签: php laravel

我正在尝试这些代码,我想在找不到用户时抛出异常。我怎么能这样做?

非常感谢你。

未找到用户时我收到此错误;

Handler.php第102行中的NotFoundHttpException: 没有模型[App \ User]

的查询结果
public function showProfile($username)
{   
   return $user = User::where('username', $username)->firstOrFail();
}

1 个答案:

答案 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";
   }
}