Тип поля сущности Symfony2 альтернативы «свойству» или «__toString ()»?

Использование Symfony2тип поля сущности нужно указатьproperty опция:

$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);
    }
}

Недостатки последнего в том, что вывынужден отображать сущность таким же образом во всех ваших формах.

Есть ли другой способ сделать это более гибким? Я имею в виду что-то вроде функции обратного вызова:

$builder->add('customers', 'entity', array(
    'multiple' => true,
    'class'    => 'AcmeHelloBundle:Customer',
    'property' => function($data) {
         return sprintf('%s %s (%s)', $data->first, $data->last, $data->email);
     },
));

Ответы на вопрос(3)

Ваш ответ на вопрос