我有一个展示视图,我必须自定义一点,以便我们可以编辑其中的内容。在这些事情中有一个多选,它是一个查询的结果,用于过滤我在控制器内完成的学校,通过渲染方法发送。
在此之前,我使用多对多选择表单来选择数据库中保存的每个学校。现在我想使用它,所以我可以使用已经工作的东西。
由于它是通过渲染而不是表单发送的,因此我设法创建一个HTML表单,以显示它,并在我提交表单时查看已选择的内容,但是我有几个问题:
首先,它想成为一个对象的实例,并且能够保存一个对象而不是一个数组。我设法做到了这一点:
$object = new Ecole();
foreach ($ecolesDispo as $key => $value)
{
$object->$key = $value;
}
$mission->addEcolesDispo($object);
(Ecole适用于学校)
我现在遇到的问题就在它之后,因为现在它希望将它转换为字符串,但是,我无法做到这一点。
以下是我的实体的相关部分的样子。
/**
* Constructor
*/
public function __construct()
{
$this->ecolesDispo = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* @return string
*/
public function __toString()
{
return (string) $this->addEcolesDispo($object);
//Not sure about that part though
}
/**
* Add ecolesDispo
*
* @param \EcoleBundle\Entity\Ecole $ecolesDispo
*
* @return Mission
*/
public function addEcolesDispo(\EcoleBundle\Entity\Ecole $ecolesDispo)
{
$this->ecolesDispo[] = $ecolesDispo;
return $this;
}
/**
* Remove ecolesDispo
*
* @param \EcoleBundle\Entity\Ecole $ecolesDispo
*/
public function removeEcolesDispo(\EcoleBundle\Entity\Ecole $ecolesDispo)
{
$this->ecolesDispo->removeElement($ecolesDispo);
}
/**
* Get ecolesDispo
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getEcolesDispo()
{
return $this->ecolesDispo;
}
如何将其转换为字符串?
提前谢谢
答案 0 :(得分:0)
您的 __ toString 功能应如下所示:
public function __toString()
{
return $this->id; // Because __toString seems to be called to set your $key variable...
}
- >依赖于字符串属性。
在__toString()函数中,您使用(string)
隐含地调用... __toString()
将$this
转换为字符串。这将是一个循环电话。
答案 1 :(得分:0)
如果在您使用__toString的实体中有一个字符串变量 name ,或者使用该实体指定实体本身的任何字符串类型属性,请尝试此操作。
public function __toString()
{
// Or change the property that you want to show
return $this->name;
}