Laravel中的try-catch样板

时间:2018-05-03 14:38:06

标签: php laravel exception exception-handling try-catch

我想知道Laravel / PHP是否有办法减少try-catch逻辑。例如,我的控制器中有两个方法:

商店方法

public function store(Request $request){
    try {

      $order = Order::create($request);

    } catch(\Exception $e) {

     return response()->json([
       "message" => 'An error has occured',
       "error" => $e->getMessage(),
     ], 500);

   }
}

更新方法

public function update(Request $request){
    try {

      $order = Order::update($request);

    } catch(\Exception $e) {

      return response()->json([
        "message" => 'An error has occured',
        "error" => $e->getMessage(),
      ], 500);

    }
 }

可以看出,try-catch在两种情况下都是相同的,返回相同的错误格式。

有没有办法提取这个逻辑并将所有控制器方法包装在同一个try-catch块中?

1 个答案:

答案 0 :(得分:2)

您可以在render的{​​{1}}方法中捕获并创建自己的回复:

/app/Exceptions/Handler.php

要小心,因为这种方法会影响所有捕获的异常