src/Controller/EditFlat.php line 23

Open in your IDE?
  1. <?php 
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  8. use Symfony\Component\HttpFoundation\File\UploadedFile;
  9. use App\Services\ProcessEditFlatForm;
  10. use App\Entity\User;
  11. use App\Entity\Flat;
  12. use App\Entity\RentalConditions;
  13. use App\Form\Type\FlatType;
  14. class EditFlat extends AbstractController{
  15.     /**
  16.      * @Route("{_locale}/user/edit-flat/{id}", name="edit_flat", requirements={"_locale": "es|en"})
  17.      */
  18.     public function index($id ''Request $request){
  19.         //get user
  20.         $user =  $this->getUser();
  21.         //get room data
  22.         $flat $this->getDoctrine()->getRepository(Flat::class)
  23.                 ->findOneBy(array('id' => $id'user'=>$user->getId() ));
  24.         
  25.         //rental conditions array
  26.         $rp $this->getDoctrine()->getRepository(RentalConditions::class);
  27.         $rtConditons $rp->findOneBy(['listingType' => 'flat']);
  28.         //create form
  29.         $form =$this->createForm(FlatType::class, $flat);
  30.         //get form data
  31.         $form->handleRequest($request);
  32.         
  33.         //saved or not saved state 
  34.         $savedOk '';
  35.         if ($form->isSubmitted() && $form->isValid()) {
  36.             /** @var UploadedFile $brochureFile */
  37.             $brochureFile $form->get('images')->getData();
  38.             //store each image name
  39.             $imageArray = array();
  40.             foreach($brochureFile as $k => $v){
  41.                 $newFilename uniqid().'.'.$v->guessExtension();
  42.                 // Move the file to the directory where brochures are stored
  43.                 try {
  44.                     $v->move(
  45.                         $this->getParameter('flat_media'),
  46.                         $newFilename
  47.                     );
  48.                     $imageArray[] = $newFilename;
  49.                 } catch (FileException $e) {
  50.                     continue;
  51.                 }
  52.             }
  53.             //create ProcessRoomPublishForm bject 
  54.             $saveFlatService = new ProcessEditFlatForm($this->getDoctrine()->getManager(), 
  55.                                                         $imageArray,
  56.                                                         $user,
  57.                                                         $id);
  58.             $savedOk $saveFlatService->editFlat($form);       
  59.             
  60.            
  61.         }
  62.         if($savedOk == true){
  63.             return $this->redirectToRoute('edit_flat', ['id'=>$id]);
  64.         }
  65.         
  66.         //var_dump($savedOk);die();
  67.         return $this->render('user/edit/_edit_flat.html.twig', [
  68.             'flat'=>$flat,
  69.             'form'=>$form->createView(),
  70.             'conditions'=>$rtConditons
  71.         ]);
  72.     }
  73.     
  74. }