src/Entity/Question.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Gedmo\Mapping\Annotation as Gedmo;
  4. use Doctrine\ORM\Mapping as ORM;
  5. /**
  6.  * Question
  7.  * 
  8.  * @ORM\Table(name="question")
  9.  * @ORM\Entity(repositoryClass="App\Repository\QuestionRepository")
  10.  */
  11. class Question
  12. {
  13.     const TYPES = [
  14.         'email',
  15.         'phone',
  16.         'text',
  17.         'comment',
  18.         'date',
  19.         'datetime',
  20.         'number',
  21.         'list',
  22.         'list_multiple',
  23.         'list_checkbox',
  24.         'bool'
  25.     ];
  26.     /**
  27.      * @var int
  28.      *
  29.      * @ORM\Column(name="id", type="integer")
  30.      * @ORM\Id
  31.      * @ORM\GeneratedValue(strategy="AUTO")
  32.      */
  33.     private $id;
  34.     /**
  35.      * @ORM\ManyToOne(targetEntity="Survey", inversedBy="questions" , cascade={"persist"})
  36.      * @ORM\JoinColumn(name="survey_id", referencedColumnName="id", onDelete="SET NULL")
  37.      */
  38.     private $survey;
  39.     /**
  40.      *
  41.      * @ORM\OneToMany(targetEntity="Choice", mappedBy="question", cascade={"persist"}, orphanRemoval=true)
  42.      * @Orm\OrderBy({"position" = "ASC"})
  43.      */
  44.     private $choices;
  45.     /**
  46.      * @var string
  47.      *
  48.      * @ORM\Column(name="type", type="string", length=255)
  49.      */
  50.     private $type;
  51.     /**
  52.      * @var string
  53.      *
  54.      * @ORM\Column(name="name", type="string", length=255)
  55.      */
  56.     private $name;
  57.     /**
  58.      *
  59.      * @ORM\OneToMany(targetEntity="Answer", mappedBy="question")
  60.      */
  61.     private $answers;
  62.     /**
  63.      * @var string
  64.      * @Gedmo\SortablePosition
  65.      * @ORM\Column(name="position", type="integer")
  66.      */
  67.     private $position;
  68.     /**
  69.      * @var string
  70.      *
  71.      * @ORM\Column(name="exportName", type="string", length=255)
  72.      */
  73.     private $exportName;
  74.     /**
  75.      * Get id
  76.      *
  77.      * @return int
  78.      */
  79.     public function getId()
  80.     {
  81.         return $this->id;
  82.     }
  83.     /**
  84.      * Set survey
  85.      *
  86.      * @param integer $survey
  87.      *
  88.      * @return Question
  89.      */
  90.     public function setSurvey($survey)
  91.     {
  92.         $this->survey $survey;
  93.         return $this;
  94.     }
  95.     /**
  96.      * Get survey
  97.      *
  98.      * @return int
  99.      */
  100.     public function getSurvey()
  101.     {
  102.         return $this->survey;
  103.     }
  104.     /**
  105.      * Set choices
  106.      *
  107.      * @param \App\Entity\Choice $choices
  108.      *
  109.      * @return Question
  110.      */
  111.     public function setChoices(\App\Entity\Choice $choices)
  112.     {
  113.         $this->choices $choices;
  114.         return $this;
  115.     }
  116.     /**
  117.      * Get choices
  118.      *
  119.      * @return int
  120.      */
  121.     public function getChoices()
  122.     {
  123.         return $this->choices;
  124.     }
  125.     /**
  126.      * Set type
  127.      *
  128.      * @param string $type
  129.      *
  130.      * @return Question
  131.      */
  132.     public function setType($type)
  133.     {
  134.         $this->type $type;
  135.         return $this;
  136.     }
  137.     /**
  138.      * Get type
  139.      *
  140.      * @return string
  141.      */
  142.     public function getType()
  143.     {
  144.         return $this->type;
  145.     }
  146.     /**
  147.      * Set name
  148.      *
  149.      * @param string $name
  150.      *
  151.      * @return Question
  152.      */
  153.     public function setName($name)
  154.     {
  155.         $this->name $name;
  156.         return $this;
  157.     }
  158.     /**
  159.      * Get name
  160.      *
  161.      * @return string
  162.      */
  163.     public function getName()
  164.     {
  165.         return $this->name;
  166.     }
  167.     /**
  168.      * Set position
  169.      *
  170.      * @param string $position
  171.      *
  172.      * @return Question
  173.      */
  174.     public function setPosition($position)
  175.     {
  176.         $this->position $position;
  177.         return $this;
  178.     }
  179.     /**
  180.      * Get position
  181.      *
  182.      * @return string
  183.      */
  184.     public function getPosition()
  185.     {
  186.         return $this->position;
  187.     }
  188.     /**
  189.      * Set exportName
  190.      *
  191.      * @param integer $exportName
  192.      *
  193.      * @return Question
  194.      */
  195.     public function setExportName($exportName)
  196.     {
  197.         $this->exportName $exportName;
  198.         return $this;
  199.     }
  200.     /**
  201.      * Get exportName
  202.      *
  203.      * @return string
  204.      */
  205.     public function getExportName()
  206.     {
  207.         return $this->exportName;
  208.     }
  209.     /**
  210.      * Constructor
  211.      */
  212.     public function __construct()
  213.     {
  214.         $this->choices = new \Doctrine\Common\Collections\ArrayCollection();
  215.         $this->answers = new \Doctrine\Common\Collections\ArrayCollection();
  216.     }
  217.     /**
  218.      * Add choice
  219.      *
  220.      * @param \App\Entity\Choice $choice
  221.      *
  222.      * @return Question
  223.      */
  224.     public function addChoice(\App\Entity\Choice $choice)
  225.     {
  226.         $choice->addQuestion($this);
  227.         $this->choices[] = $choice;
  228.         return $this;
  229.     }
  230.     /**
  231.      * Remove choice
  232.      *
  233.      * @param \App\Entity\Choice $choice
  234.      */
  235.     public function removeChoice(\App\Entity\Choice $choice)
  236.     {
  237.         $this->choices->removeElement($choice);
  238.     }
  239.     /**
  240.      * Add answer
  241.      *
  242.      * @param \App\Entity\Answer $answer
  243.      *
  244.      * @return Question
  245.      */
  246.     public function addAnswer(\App\Entity\Answer $answer)
  247.     {
  248.         $this->answers[] = $answer;
  249.         return $this;
  250.     }
  251.     /**
  252.      * Remove answer
  253.      *
  254.      * @param \App\Entity\Answer $answer
  255.      */
  256.     public function removeAnswer(\App\Entity\Answer $answer)
  257.     {
  258.         $this->answers->removeElement($answer);
  259.     }
  260.     /**
  261.      * Get answers
  262.      *
  263.      * @return \Doctrine\Common\Collections\Collection
  264.      */
  265.     public function getAnswers()
  266.     {
  267.         return $this->answers;
  268.     }
  269.     /**
  270.      * Add survey
  271.      *
  272.      * @param \App\Entity\Survey $survey
  273.      *
  274.      * @return Question
  275.      */
  276.     public function addSurvey(\App\Entity\Survey $survey)
  277.     {
  278.         $this->survey $survey;
  279.     }
  280.     public function __toString()
  281.     {
  282.         return $this->getName();
  283.     }
  284. }