vendor/kunstmaan/redirect-bundle/Entity/Redirect.php line 25

Open in your IDE?
  1. <?php
  2. namespace Kunstmaan\RedirectBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Kunstmaan\AdminBundle\Entity\AbstractEntity;
  5. use Kunstmaan\RedirectBundle\Repository\RedirectRepository;
  6. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  7. use Symfony\Component\Validator\Constraints as Assert;
  8. use Symfony\Component\Validator\Context\ExecutionContextInterface;
  9. /**
  10.  * @ORM\Table(
  11.  *     name="kuma_redirects",
  12.  *     uniqueConstraints={
  13.  *         @ORM\UniqueConstraint(name="kuma_redirects_idx_domain_origin", columns={"domain", "origin"})
  14.  *     }
  15.  * )
  16.  * @ORM\Entity(repositoryClass="Kunstmaan\RedirectBundle\Repository\RedirectRepository")
  17.  */
  18. #[ORM\Table(name'kuma_redirects')]
  19. #[ORM\UniqueConstraint(name'kuma_redirects_idx_domain_origin'columns: ['domain''origin'])]
  20. #[ORM\Entity(repositoryClassRedirectRepository::class)]
  21. #[UniqueEntity(fields: ['origin''domain'])]
  22. class Redirect extends AbstractEntity
  23. {
  24.     /**
  25.      * @var string
  26.      *
  27.      * @ORM\Column(name="domain", type="string", length=255, nullable=true)
  28.      */
  29.     #[ORM\Column(name'domain'type'string'length255nullabletrue)]
  30.     private $domain;
  31.     /**
  32.      * @var string
  33.      *
  34.      * @ORM\Column(name="origin", type="string", length=255)
  35.      */
  36.     #[ORM\Column(name'origin'type'string'length255)]
  37.     #[Assert\NotBlank]
  38.     private $origin;
  39.     /**
  40.      * @var string
  41.      *
  42.      * @ORM\Column(name="note", type="string", length=255, nullable=true)
  43.      */
  44.     #[ORM\Column(name'note'type'string'length255nullabletrue)]
  45.     private $note;
  46.     /**
  47.      * @var string
  48.      *
  49.      * @ORM\Column(name="target", type="text")
  50.      */
  51.     #[ORM\Column(name'target'type'text')]
  52.     #[Assert\NotBlank]
  53.     private $target;
  54.     /**
  55.      * @var bool
  56.      *
  57.      * @ORM\Column(name="permanent", type="boolean")
  58.      */
  59.     #[ORM\Column(name'permanent'type'boolean')]
  60.     private $permanent;
  61.     /**
  62.      * Get domain
  63.      *
  64.      * @return string
  65.      */
  66.     public function getDomain()
  67.     {
  68.         return $this->domain;
  69.     }
  70.     /**
  71.      * Set domain
  72.      *
  73.      * @param string $domain
  74.      *
  75.      * @return Redirect
  76.      */
  77.     public function setDomain($domain)
  78.     {
  79.         $this->domain $domain;
  80.         return $this;
  81.     }
  82.     /**
  83.      * Set origin
  84.      *
  85.      * @param string $origin
  86.      *
  87.      * @return Redirect
  88.      */
  89.     public function setOrigin($origin)
  90.     {
  91.         $this->origin $origin;
  92.         return $this;
  93.     }
  94.     /**
  95.      * Get origin
  96.      *
  97.      * @return string
  98.      */
  99.     public function getOrigin()
  100.     {
  101.         return $this->origin;
  102.     }
  103.     /**
  104.      * Set target
  105.      *
  106.      * @param string $target
  107.      *
  108.      * @return Redirect
  109.      */
  110.     public function setTarget($target)
  111.     {
  112.         $this->target $target;
  113.         return $this;
  114.     }
  115.     /**
  116.      * Get target
  117.      *
  118.      * @return string
  119.      */
  120.     public function getTarget()
  121.     {
  122.         return $this->target;
  123.     }
  124.     /**
  125.      * Set permanent
  126.      *
  127.      * @param bool $permanent
  128.      *
  129.      * @return Redirect
  130.      */
  131.     public function setPermanent($permanent)
  132.     {
  133.         $this->permanent $permanent;
  134.         return $this;
  135.     }
  136.     /**
  137.      * Get permanent
  138.      *
  139.      * @return bool
  140.      */
  141.     public function isPermanent()
  142.     {
  143.         return $this->permanent;
  144.     }
  145.     /**
  146.      * @return string
  147.      */
  148.     public function getNote()
  149.     {
  150.         return $this->note;
  151.     }
  152.     /**
  153.      * @param string $note
  154.      *
  155.      * @return Redirect
  156.      */
  157.     public function setNote($note)
  158.     {
  159.         $this->note $note;
  160.         return $this;
  161.     }
  162.     #[Assert\Callback]
  163.     public function validate(ExecutionContextInterface $context)
  164.     {
  165.         if ($this->getOrigin() === $this->getTarget()) {
  166.             $context->buildViolation('errors.redirect.origin_same_as_target')
  167.                 ->atPath('target')
  168.                 ->addViolation();
  169.         }
  170.     }
  171. }