public function putAreaAction($id) { try { $app = \Slim\Slim::getInstance(); $app->add(new \Slim\Middleware\ContentTypes()); $data = $app->request()->getBody(); $areaPut = json_decode($data); $areaRep = new \Repository\AreaRepository(); $area = $areaRep->getArea($id); $area->setName($areaPut->name); $this->validateArea($area); if ($areaRep->exists($area)) { throw new \Exception('Área já cadastrada'); } $areaRep->update($area); $resource = new \League\Fractal\Resource\Item($area, new \Transformer\AreaTransformer()); return $this->writeJson($resource, 200); } catch (\Exception $exc) { return $this->error($exc->getMessage()); } }