我有一个地址表单。一切都按预期工作,直到我添加了一个下拉选择城市的字段。当我尝试保存表单时,我会得到以下错误:
可捕获致命错误:无法将AppBundle\Entity\Address类的对象转换为字符串
文档说,EntityType字段旨在从Doctrine实体加载选项。
这是表格:
$builder
->add('cities', EntityType::class, array(
'class' => \AppBundle\Entity\Cities::class,
'choice_label' => 'cityname',
'choice_value' => 'cityid')
)
这是我的实体
/**
* @var string
*
* @ORM\Column(name="cities", type="string", length=55, nullable=false)
*/
private $cities;
访问器/修改器:
/**
* Set cities
*
* @param string $cities
*
* @return Address
*/
public function setCities($cities)
{
$this->cities = $cities;
return $this;
}
/**
* Get cities
*
* @return string
*/
public function getCities()
{
return $this->cities;
}
我也添加了这个:
public function __toString() {
return $this->getCities();
}
产生了以下的结果:
可捕获致命错误:方法AppBundle\Entity\Address::__toString()必须返回一个字符串
public function __toString() { return (string) $this->name; }
和public function getName() { return $this->__toString(); }
你也可以试试。 - SnegirekkAdminController
,可以重写它并将其用于自己的目的。 - Azuloo