/** * @return RestResponse */ public function run() { $this->checkIsInit(); try { if (!$this->isEntityExists($this->entityId)) { return (new RestResponse(false))->setStatusCode(RestResponse::STATUS_CODE_ENTITY_NOT_FOUND)->setMessage("Сущность {$this->className} с id={$this->entityId} не была найдена"); } $requestContentAsObj = $this->convertRequestDataToObj($this->requestContent); $entity = $this->mergeDataFromRequestWithEntity($requestContentAsObj); /** @var ConstraintViolationList $validations */ $validations = $this->validator->validate($entity); if ($validations->count() !== 0) { return (new RestResponse(false))->setStatusCode(RestResponse::STATUS_CODE_WRONG_INPUT_DATA)->setErrors($validations); } $entity = $this->em->merge($entity); $this->em->flush(); if ($this->newPrimaryKeyValue !== null) { EntityHelper::changePKValueAndSave($this->em, $entity, $this->newPrimaryKeyValue); } return (new RestResponse(true))->setStatusCode(RestResponse::STATUS_CODE_OK)->setData($entity); } catch (\Exception $e) { return (new RestResponse(false))->setStatusCode(RestResponse::STATUS_CODE_WRONG_INPUT_DATA)->setMessage($e->getMessage()); } }
/** * @expectedException \LogicException * @expectedExceptionMessage Одно из названий ключа (soe) не было найдено среди ключей в сущности (id,ownerId) */ public function testThrowExceptionIfUseChangePKValueWithArrayWithNotEnoughItemsWhenEntityWithCompositeKeys2() { /** @var Client $book */ $book = $this->em->getRepository($this->bookFullClassName)->findOneBy(['id' => 1, 'ownerId' => 1]); EntityHelper::changePKValueAndSave($this->em, $book, ['soe' => 2, 'sad' => 3]); }