【发布时间】:2017-12-09 19:24:33
【问题描述】:
我有以下控制器:
<?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->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
在使用 'try' 和 'catch' 时我做错了什么吗?
【问题讨论】:
-
findOrFail 适用于 id。你应该使用 where 条件
-
@CavidKərimov 使用我知道,插入的值是整数
-
未发现异常。 Webpackage 中没有任何行,这就是为什么它会抛出 NotFoundException
-
@CavidKərimov 我知道,也许你不明白我的问题,我不是在谈论为什么我在 DB 中找不到任何行,我知道如果我将 id 20 传递给 findOrFail 方法将返回错误。专注于我的代码捕获 (NotFoundHttpException $exception){ die();这意味着用户根本不应该显示错误,只是让脚本死掉。
标签: php laravel exception laravel-5 exception-handling