从symfony2中的一个形式中检索另一个实体



我有一个形式,该表格在symfony2中填充了 Project学说实体。

假设字段是:

Name: ______________
Customer: ____________

其中 Customer是另一个学说实体。

我的问题是,我无法设法检索客户实体。我尝试根据ID(例如字段成为客户ID)来检索它,然后在预科活动的侦听器中,将$project->customer与检索到的实体设置,但对我来说似乎过高。

我要做的就是以下内容:

  1. 显示一个带有可用Customer实体的列表框作为客户字段(以Project表格)
  2. 在数据库中,用所选客户的ID填充客户ID字段(在项目表中)

我知道这一定很简单,只需使用PHP/MySQL和一些外键即可设置3分钟,但是我根本不知道使用Symfony2/的最佳方法学说(在尊重标准并且不看起来意大利面的方式中的意思)。

所以,我的问题:

  1. 我应该在MyBundleFormProjectType->buildForm()函数中声明什么?
  2. 我应该如何检索所选的客户实体,我应该在目录结构(控制器,实体,预科活动听众...)?
  3. 中在哪里进行此操作。

谢谢。

刚找到答案。这真的很简单:)

在mybundle/form/projectType.php中:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name',    'text')
        ->add('customer', 'entity', array(
            'class' => 'MeBundleMyBundleEntityCustomer',
            'property' => 'name'));
}

然后在project.orm.yml(是的,我喜欢yaml):

manyToOne:
    customer:
        targetEntity: Customer
        joinColumn:
            name: customerId
            referencedColumnName: id
            nullable: false

最后,在customer.orm.yml:

oneToMany:
    projects:
      targetEntity: Project
      mappedBy: customer

就是这样!Symfony2照顾一切。只是普通的魔术。

相关内容

  • 没有找到相关文章

最新更新