我有以下控制器:
<?php
namespace App\Http\Controllers;
use App\WebPackage;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class WebProcessController extends Controller
{
public function sendPayment(Request $request)
{
if ($request->ptitle && $request->pricetotal ){
try {
$product = WebPackage::findOrFail($request->ptitle);
}
catch (NotFoundHttpException $exception){
die();
}
return $product;
}
只是为了尝试我已经发送了一个$ request-gt; ptitle,其值id不在WebPackage模型中。
据我所知,当出现错误异常时,die()函数应该可以工作。 但仍显示错误页面:
Sorry, the page you are looking for could not be found.
2/2
NotFoundHttpException in Handler.php line 113:
No query results for model [App\WebPackage] 20
使用&#39;试试&#39;我做了什么错并且&#39;赶上&#39; ?
答案 0 :(得分:2)
问题是您正在捕获无效的异常类型。 findOrFail
如果找不到任何记录,则会引发\Illuminate\Database\Eloquent\ModelNotFoundException
NotFoundHttpException
,这是完全不同的例外情况。
此外,如果您只想隐藏用户的错误,则应考虑在Handler
中处理异常或在APP_DEBUG
文件中将false
设置为.env
。