php - 在 Symfony2 buildForm() 中连接属性

标签 php symfony doctrine

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

我有一个杂志实体、一个问题实体和一个章节实体。杂志 (Mag1, Mag2) 有它的名字,只有一本杂志的 Issue 有它的“编号” (Mag1->Issue 1, Mag1->Issue 2, Mag3-> Issue 1, Mag2 -> Issue '夏天')。 Chapter 只能属于一个 Issue,但是在创建表单时,为了构建 Issue 选择器,我需要连接两个实体的属性:

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'
        ))
    ;
}
...

我需要做的是在“属性”中连接类似 'magazine.name'+'number' 的内容(其中 'number' 是 Issue 将添加数字。尝试与 连接。 就像在 php 字符串中一样不起作用,因为它们不是字符串,所以我不知道我必须做什么,或者是否可以这样做方式。

最佳答案

在 Issue 中创建一个新的 getter 来执行连接。鉴于您已经正确设置了 ManyToOne 关系,getter 应该是这样的:

public function getMagazzineAndIssue() {
   return $this->magazine->getName() . $this->number;
}

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

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

关于php - 在 Symfony2 buildForm() 中连接属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13242712/

相关文章:

php - 是否有任何关于 PHP XMLWriter 功能的资源?

mysql - 导出 localhost Sql 并将其导入服务器上给我 errno 150

php - Zend 和 Doctrine 的日期格式

php - 当我打开 php opcache 时,Doctrine 吓坏了

PHP 静态关键字与 new 一起使用来构建对象

php - 如何防止显示 PDO 错误?

php - Doctrine动态实体属性

php - 限制对 PHP 中 setter 的访问?

php - Zend Framework、phpUnit 和 Doctrine 导致问题

php - Chrome 加载旧版本的 Javascript 文件