1

管理クラスでsonata_type_model_listフォームタイプを使用するときに、リンクされた管理クラスをカスタマイズするソリューションを探しています。

例: EntityA という名前の 1 つのエンティティに対して 2 人の管理者がいます: class EntityA class EntityA1Admin class EntityA2Admin

このエンティティは、他のエンティティ (EntityB および EntityC) と多対 1 の関係でリンクされています。

EntityBAdmin では、 $formMapper->add('entityA','sonata_type_model_list'); で A1Admin を呼び出したいと考えています。

EntityCAdmin では、 $formMapper->add('entityA','sonata_type_model_list'); で A2Admin を呼び出したいと考えています。

sonata_type_model_list によって呼び出される管理クラスを手動で設定する解決策はありますか?

少なくとも、それが不可能な場合は、リスト ビューで既定のフィルターをカスタマイズする方法はありますか? (sonata_type_model_list フィールドを介して $dataGridValues をカスタマイズすることは可能ですか?)

事前に感謝します(コードで解決策を見つけるためにすでに何時間も費やしていますが、明確な解決策が見つかりません....)

4

1 に答える 1

0

私があなたなら、1 つのエンティティに複数の管理者を使用することに反対します。最初に、ある種のコンテキストまたはパラメーターを使用して、同じ EntityA 管理者に対してそれぞれのケースで何を表示し、何を表示しないかを区別します (EntityA に 2 つの別々の管理者を使用する代わりに)。

に表示されているフィルタを変更したいと考えていますsonata_type_model_list。EntityA 管理者が sonata_type_model_list ウィンドウ内から呼び出されているかどうかを知るために、これを試してみてください。

protected function configureDatagridFilters(DatagridMapper $filterMapper)
{
    $request = $this->getRequest();
    if ($request->query->get('pcode') == '_entity_b_code_') {
        ...
    }
}

次に、コンテキストに応じて、必要なフィルター フィールドを追加するか、追加しないかを決定します。

于 2013-10-11T12:19:48.657 に答える