Symfony2 buildForm()中的连接属性

Ikz*_*zer 2 php doctrine symfony

我在Doctrine中有一组实体,它们相互依赖来构建某些数据,我需要创建一个使用其中两个实体的数据的表单.

我有一个杂志实体,一个Issue实体和一个Chapter实体.杂志(Mag1,Mag2)有它的名称,问题,只属于一个杂志,有它的'数字'(Mag1->第1期,Mag1->第2期,Mag3->第1期,Mag2 - >问题'夏季').本章必须只属于一个问题,但在创建表单时,要构建问题选择器,我需要连接两个实体的属性:

class ChapterType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name')
        ->add('number')
        ->add('issue', 'entity', array(
                'class' => 'Bundle:Issue',
                'property' => 'magazine.name'
        ))
    ;
}
...
Run Code Online (Sandbox Code Playgroud)

我需要做的是连接'属性'之类的东西'magazine.name'+'number'(在哪里'number'是将添加数字的问题.试图与.php字符串中的类似连接不起作用,因为它们不是字符串所以我不知道我必须做什么或者是否可以这样做.

Alb*_*ona 7

在问题中创建一个执行concat的新getter.鉴于您已正确设置ManyToOne关系,getter应该类似于:

public function getMagazzineAndIssue() {
   return $this->magazine->getName() . $this->number;
}
Run Code Online (Sandbox Code Playgroud)

在表单中,使用此新方法作为属性:

$builder
    ->add('name')
    ->add('number')
    ->add('issue', 'entity', array(
            'class' => 'Bundle:Issue',
            'property' => 'magazineAndIssue'
    ))
Run Code Online (Sandbox Code Playgroud)