使用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