1

上下文

  • 我需要将我的用户与公司联系起来。
  • 这些公司存储在另一个数据库(mssql :().
  • 我有一个存储过程,可以为我提供公司列表。

我做了什么

  • 将 dbal 配置为能够调用存储过程。
  • 扩展了 SonataUser 的实体并为公司 ID 添加了一个整数字段。
  • 扩展 SonataUser 的configureFormFields()管理员

    $formMapper
    #...
      ->add('company', 'choice', array('choices' => $companies))
    #...
    

$companies应该包含公司列表但不确定这是正确的方法,我什至不知道如何从这个类中调用存储过程......

问题

  • 我怎样才能将这些公司列入 SonataUser 的表格?
  • 如何在列表中显示选定的公司名称?
4

1 回答 1

2

这是我所做的:

  • 创建一个服务来注入连接以获取公司
  • 创建自定义字段
  • 将其注册为服务并在构造函数中注入第一个服务
  • 为字段提供选择(进入自定义字段定义)

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
    #...
    

然后我可以简单地使用它configureFormFields()

->add('company', 'company')
于 2012-09-18T07:32:50.333 回答