簡體   English   中英

Symfony2 - SonataAdmin 捆綁包

[英]Symfony2 - SonataAdmin Bundle

你好? 我正在努力使用 SonataAdmin Bundle。 我正在嘗試做一個常見問題系統。

這是我的實際配置。 使用問題和類別實體:

services:
    sonata.admin.faq_question:
        class: FM\AppBundle\Admin\Faq\Question
        tags:
            - { name: sonata.admin, manager_type: orm, group: "FAQ", label: "Questions" }
        arguments:
            - ~
            - FM\AppBundle\Entity\Faq\Question
            - ~

    sonata.admin.faq_category:
        class: FM\AppBundle\Admin\Faq\Category
        tags:
            - { name: sonata.admin, manager_type: orm, group: "FAQ", label: "Categories" }
        arguments:
            - ~
            - FM\AppBundle\Entity\Faq\Category
            - ~

有了這個系統,我有兩個菜單(問題和類別)。 我希望只有一個菜單,我可以在其中看到按類別分組的問題。

您認為 Sonata 的默認配置可能嗎?

我是否需要覆蓋 CRUDController 中的 listAction 方法?

你需要的東西可以在兩個主要方面恢復:

  • 從儀表板隱藏類別管理員
  • 覆蓋問題列表視圖的默認查詢

對於第一個(隱藏類別),在您的服務聲明中更改以下內容:

sonata.admin.faq_category:
    # ...
    tags:
        - { show_in_dashboard: false, name: sonata.admin, manager_type: orm, group: "FAQ", label: "Categories" }
    # ...

最后,將以下內容添加到您的 QuestionAdmin 類中:

/**
 * {@inheritDoc}
 */
public function createQuery($context = 'list')
{
    $query = parent::createQuery($context);

    // Assuming the Question entity has a $categories field+association
    $query
        ->leftJoin($query->getRootAliases()[0].'categories', 'c')
        ->groupBy('c.id')

    return $query;
}

希望這適合您的需要。

暫無
暫無

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

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