コード例 #1
0
 /**
  * @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;
 }