使用Symfony2的entity field type一个应该指定property
选项:Symfony2实体字段类型替代“属性”或“__toString()”?
$builder->add('customers', 'entity', array(
'multiple' => true,
'class' => 'AcmeHelloBundle:Customer',
'property' => 'first',
));
但有时这是不够的:想想两个客户具有相同的名称,所以显示电子邮件(独特)将是强制性的。
另一种可能性是实施__toString()
到模型:
class Customer
{
public $first, $last, $email;
public function __toString()
{
return sprintf('%s %s (%s)', $this->first, $this->last, $this->email);
}
}
后者的disadvances是你被迫显示实体所有的形式以同样的方式。
还有其他方法可以使这更灵活吗?我的意思是这样一个回调函数:
$builder->add('customers', 'entity', array(
'multiple' => true,
'class' => 'AcmeHelloBundle:Customer',
'property' => function($data) {
return sprintf('%s %s (%s)', $data->first, $data->last, $data->email);
},
));
我有此相同的情况,并计划张贴在这么快的一个问题...我期待回答。 – Icode4food 2012-03-28 22:44:43