public function postAreaAction() { try { $app = \Slim\Slim::getInstance(); $data = $app->request->getBody(); $areaPost = json_decode($data); $area = new \Entity\Area(); $area->setName($areaPost->name); $this->validateArea($area); $areaRep = new \Repository\AreaRepository(); $areaRep->insert($area); $returnAreas = $areaRep->finByName($area->getName()); if (count($returnAreas) > 1) { throw new Exception('Many areas'); } $resource = new \League\Fractal\Resource\Item($returnAreas[0], new \Transformer\AreaTransformer()); return $this->writeJson($resource, 200); } catch (\Exception $exc) { return $this->error($exc->getMessage()); } }