Generate coordinates when offer added
This commit is contained in:
parent
3a525f397c
commit
c6eadf742c
3 changed files with 64 additions and 2 deletions
31
migrations/Version20220112111528.php
Normal file
31
migrations/Version20220112111528.php
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20220112111528 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('ALTER TABLE offering ADD lat DOUBLE PRECISION DEFAULT NULL, ADD lng DOUBLE PRECISION DEFAULT NULL');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('ALTER TABLE offering DROP lat, DROP lng');
|
||||
}
|
||||
}
|
|
@ -38,7 +38,7 @@ class OfferController extends AbstractController
|
|||
}
|
||||
|
||||
#[Route('/new', name: 'new_offer')]
|
||||
public function newOffer(Request $request, string $photoDir, OfferPhotoHelper $offerPhotoHelper): Response
|
||||
public function newOffer(Request $request, PlzToCoordinate $plzconverter, string $photoDir, OfferPhotoHelper $offerPhotoHelper): Response
|
||||
{
|
||||
$offer = new Offering();
|
||||
$form = $this->createForm(OfferingFormType::class, $offer);
|
||||
|
@ -50,6 +50,11 @@ class OfferController extends AbstractController
|
|||
$offer->setByUser($user);
|
||||
$offer->setCreatedAt(new \DateTime());
|
||||
|
||||
$coordinate = $plzconverter->convertPlzToCoordinate($form['zipCode']->getData());
|
||||
if ($coordinate != null) {
|
||||
$offer->setCoordinate($coordinate);
|
||||
}
|
||||
|
||||
if ($photo = $form['photo']->getData()) {
|
||||
$offerPhotoHelper->uploadOfferPhoto($photoDir, $photo, $offer);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace App\Entity;
|
|||
|
||||
use App\Repository\OfferingRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Location\Coordinate;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
|
@ -51,6 +52,16 @@ class Offering
|
|||
*/
|
||||
private $description;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="float", nullable=true)
|
||||
*/
|
||||
private $lat;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="float", nullable=true)
|
||||
*/
|
||||
private $lng;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
|
@ -132,4 +143,19 @@ class Offering
|
|||
{
|
||||
return (string) $this-getTitle();
|
||||
}
|
||||
}
|
||||
|
||||
public function getCoordinate(): ?Coordinate
|
||||
{
|
||||
$coordinate = new Coordinate($this->long, $this->lat);
|
||||
|
||||
return $coordinate;
|
||||
}
|
||||
|
||||
public function setCoordinate(Coordinate $coordinate): self
|
||||
{
|
||||
$this->lat = $coordinate->getLat();
|
||||
$this->lng = $coordinate->getLng();
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
Reference in a new issue