【问题标题】:Symfony 2 - Sonata Admin form field choices external sourceSymfony 2 - Sonata Admin 表单字段选择外部源
【发布时间】:2012-08-21 09:27:27
【问题描述】:

上下文

  • 我需要将我的用户链接到公司。
  • 这些公司存储在另一个数据库中(mssql :()。
  • 我有一个提供公司列表的存储过程。

我做了什么

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

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

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

问题

  • 如何在 SonataUser 的表格中列出这些公司?
  • 如何在列表中显示选定的公司名称?

【问题讨论】:

    标签: php symfony symfony-sonata symfony-2.1 sonata-admin


    【解决方案1】:

    这是我所做的:

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

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

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

    ->add('company', 'company')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-05
      • 2015-11-06
      • 2023-04-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      相关资源
      最近更新 更多