簡體   English   中英

添加自定義按鈕以編輯奏鳴曲管理包的頁面

[英]Add custom button to edit page of sonata admin bundle

如您所知,sonata admin捆綁包在編輯頁面中有三個按鈕,分別是“添加新的,更新和刪除”。 我可以刪除刪除按鈕:

protected function configureRoutes(RouteCollection $collection)
{
    $collection
        ->remove('delete')
    ;

}

但我想在編輯UserAdmin時添加“向用戶發送消息”按鈕。 我怎樣才能做到這一點? 我在sonata docs中找不到任何關於它的文檔。

如果文件在其他命名空間中,您應該提示參數,並且add()方法應該可以工作,但是您必須覆蓋Sonata的CRUD模板才能顯示其他按鈕/鏈接。
此外,您可以定義將被調用的控制器和操作。

例如:
SRC /阿克米/ DemoBundle /管理/ EntityAdmin.php:

protected function configureRoutes(\Sonata\AdminBundle\Route\RouteCollection $collection)
{
    $collection
        ->add('dummy',
            'dummy/{id}',
            array('_controller' => 'AcmeDemoBundle:Default:dummy'),
            array('id' => '\d+')
        )
    ;
}

的src / Acme公司/ HelloBundle /控制器/ DefaultController.php:

/**
    @Route("/dummy/{id}", name="dummy",
        requirements={"id" = "\d+"}
    )
    @Template("AcmeDemoBundle:Default:dummy.html.twig")
*/
public function dummyAction($id)
{
    return(array(
        'id' => $id
    ));
}

應用程序/資源/ SonataAdminBundle /視圖/ CRUD / base_edit_form.html.twig:

{% block form %}
    ...
    {% else %}
        ...
        {% block formactions %}
            ...
            {% else %}
                ...
                {% if admin.id(object) %}
                    ...
                    {% if admin.hasroute('dummy') %}
                        <a class="btn" target="_blank" href="{{ admin.generateObjectUrl('dummy', object) }}">{% trans from 'SonataAdminBundle' %}link_dummy{% endtrans %}</a>
                    {% endif %}
                    ...

暫無
暫無

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

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