0

我在控制器中有方法:

public function read(ReadRequest $request){

    $r  = $request;
    $id = $r->id;
    $order = null;

    try{
        $order= Order::firstOrFail($id);
    }catch(ModelNotFoundException $e){
        return response()->json(["message"=>"Order Id doesn't exist."], 404);
    }


    return response()->json(["order"=>$order], 200);

}

订单模型连接到控制器文件:

namespace App\Http\Controllers;
use App\Order;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

IDE 说它不知道 firstOrFail() 函数。当我尝试使用 Postmen 通过 XMLHttpRequest 获取数据时,控制器方法不起作用。当我从方法中删除这部分代码时:

    try{
        $order= Order::firstOrFail($id);
    }catch(ModelNotFoundException $e){
        return response()->json(["message"=>"Order Id doesn't exist."], 404);
    }

控制器方法开始工作。我认为问题出在 firstOrFail() 方法中,但我不明白为什么。

4

1 回答 1

1

如果您通过主 ID 找到而不是使用findOrFail

$order= Order::findOrFail($id);

如果您通过另一列而不是使用找到firstOrFail

$order = Order::where('column', '=', $id)->firstOrFail();

于 2017-05-07T07:14:49.313 回答