簡體   English   中英

在表單下拉列表中僅返回唯一值symfony 3.4

[英]Return only unique values on form dropdown symfony 3.4

我制作了一個表單,用於提交單個用戶的上級組織。 實體鏈接到的數據庫表包含該組織的多個條目(因為每個組織都有多個用戶),我只想返回一個組織名稱的實例,而不是返回20個重復的實例。

我聽說有一些函數,例如distinct()或findOneOrNull,但是我不確定如何實現它們。

這是表格中的代碼:

        ->add(
            'userParent',
            EntityType::class,
            [   

                'class' => UserParent::class,
                'choice_label' => function ($parents) {
                    return $parents->getParent()->getName();
                }
            ]
        )               

您可以為EntityType指定QueryBuilder

->add('userParent',
      EntityType::class,
      [   
          'class' => UserParent::class,
          'choice_label' => function ($parents) {
              return $parents->getParent()->getName();
          },
          'query_builder' => function(UserParentRepository $r) {
                                 return $r->getUniqueCompanies();
          },
      ]
    );

然后,您必須在UserParentRepository類中添加getUniqueCompanies() ,而DISTINCT會在其中提供幫助。

您應該使用查詢生成器: https : //symfony.com/doc/current/reference/forms/types/entity.html#ref-form-entity-query-builder可以使用它創建自己的查詢,以獲取想要的實體顯示。 但是一個后腿! 如果將表中的條目分組,則意味着您將僅鏈接到doppelgängers的特定行...聽起來有些奇怪。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM