/** * @param Request $request * @param $id * @param BaseModel $model * @param bool|true $requireEntityKey * @return bool */ protected function checkEntityIdMatchesRoute(Request $request, $id, BaseModel $model, $requireEntityKey = true) { $keyName = $model->getKeyName(); if (!$request->has($keyName)) { if (!$requireEntityKey) { return true; //it is ok if the key is not set (for patch requests etc) } else { throw new BadRequestException("Request entity must include entity id ({$keyName}) for " . get_class($model)); } } if ((string) $request->json($keyName) !== (string) $id) { throw new BadRequestException('Provided entity body does not match route parameter. The entity key cannot be updated'); } return true; }