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 に答える