我在控制器中有方法:
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 AppHttpControllers;
use AppOrder;
use IlluminateDatabaseEloquentModelNotFoundException;
use IlluminateHttpRequest;
use IlluminateHttpResponse;
IDE说它不知道FirstorFail((函数。当我尝试使用Postmen通过XMLHTTPRequest获取数据时,控制器方法无效。当我从方法中删除这一部分时:
try{
$order= Order::firstOrFail($id);
}catch(ModelNotFoundException $e){
return response()->json(["message"=>"Order Id doesn't exist."], 404);
}
控制器方法开始起作用。我认为问题是在firstorfail((方法中,但我不明白为什么。
如果通过主ID找到而不是使用findOrFail
$order= Order::findOrFail($id);
如果您通过另一列而不是使用firstOrFail
$order = Order::where('column', '=', $id)->firstOrFail();