我有一个表格问题,字段“valeurs default”有所有问题的答案,这将是一个多选字段我的问题是添加(操作框)一个小按钮来订购答案,例如问题:“年龄”
- >单击订购按钮后将显示答案:
“20-> 25 25-> 30 30-> 35”
this is how it appears in my template
这是我的实体“问题”
class Question
{/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="Libelle", type="string", length=150)
*/
private $libelle;
/**
* @var string
*
* @ORM\Column(name="TypeQuestion", type="string", length=150)
*/
protected $TypeQuestion;
/**
* @ORM\ManyToMany(targetEntity="tuto\BackofficeBundle\Entity\Service")
*/
protected $Service;
/**
* @ORM\ManyToMany(targetEntity="tuto\BackofficeBundle\Entity\ValeursDefault")
*/
protected $ValeursDefault;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set libelle
*
* @param string $libelle
*
* @return Question
*/
public function setLibelle($libelle)
{
$this->libelle = $libelle;
return $this;
}
/**
* Get libelle
*
* @return string
*/
public function getLibelle()
{
return $this->libelle;
}
/**
* Constructor
*/
public function __construct()
{
$this->Service = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add Service
*
* @param \tuto\BackofficeBundle\Entity\Service $service
* @return Question
*/
public function addService(\tuto\BackofficeBundle\Entity\Service $service)
{
$this->Service[] = $service;
return $this;
}
/**
* Remove Service
*
* @param \tuto\BackofficeBundle\Entity\Service $service
*/
public function removeService(\tuto\BackofficeBundle\Entity\Service $service)
{
$this->Service->removeElement($service);
}
/**
* Get Service
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getService()
{
return $this->Service;
}
/**
* Add ValeursDefault
*
* @param \tuto\BackofficeBundle\Entity\ValeursDefault $valeursDefault
* @return Question
*/
public function addValeursDefault(\tuto\BackofficeBundle\Entity\ValeursDefault $valeursDefault)
{
$this->ValeursDefault[] = $valeursDefault;
return $this;
}
/**
* Remove ValeursDefault
*
* @param \tuto\BackofficeBundle\Entity\ValeursDefault $valeursDefault
*/
public function removeValeursDefault(\tuto\BackofficeBundle\Entity\ValeursDefault $valeursDefault)
{
$this->ValeursDefault->removeElement($valeursDefault);
}
/**
* Get ValeursDefault
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getValeursDefault()
{
return $this->ValeursDefault;
}
/**
* Set TypeQuestion
*
* @param string $typeQuestion
* @return Question
*/
public function setTypeQuestion($typeQuestion)
{
$this->TypeQuestion = $typeQuestion;
return $this;
}
/**
* Get TypeQuestion
*
* @return string
*/
public function getTypeQuestion()
{
return $this->TypeQuestion;
}
}
答案 0 :(得分:1)
编写一个枝条扩展,将ValeursDefault分类为twig。这通常是我对嵌套对象的处理方式。
了解更多详情http://symfony.com/doc/current/cookbook/templating/twig_extension.html
在想要根据名为position的属性命令实体的子对象之前,我遇到了类似的问题,所以我写了这样的东西
public function orderPosition($arr) {
$size = count($arr);
for ($i = 0; $i < $size; $i++) {
for ($j = 0; $j < $size - 1 - $i; $j++) {
if ($arr[$j + 1]->getPosition() < $arr[$j]->getPosition()) {
$this->swap($arr, $j, $j + 1);
}
}
}
return $arr;
}
对于您的情况,您将使用ValeursDefault中您想要排序的任何函数而不是getPosition()
答案 1 :(得分:1)
我认为您可以使用Doctrine对您的值进行排序:
/**
* @ORM\ManyToMany(targetEntity="tuto\BackofficeBundle\Entity\ValeursDefault")
* @ORM\OrderBy({"value" = "ASC"})
*/
protected $ValeursDefault;