簡體   English   中英

如何將變量傳遞給奏鳴曲管理員自定義列表操作?

[英]How to pass variables to sonata admin custom list action?

我如何將一組變量傳遞給SonataMediaBundle:MediaAdmin:list_image.html.twig
似乎沒有任何選擇。

class MediaAdmin extends Admin
{
    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('id')
            ->add('image', 'string', array(
                'template' => 'SonataMediaBundle:MediaAdmin:list_image.html.twig',
                array('data'=>'something')<<- This is not working
            ))
            ->add('custom', 'string', array(
                'template' => 'SonataMediaBundle:MediaAdmin:list_custom.html.twig'
            ))
        ;
    }
}

模板:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field%}
    {{dump(data)}}     <<- This is not working
{% endblock %}

我只想將變量值傳遞給SonataMediaBundle:MediaAdmin:list_image.html.twig

只是詳細說明Tigran的答案。

class MediaAdmin extends Admin
{
    public $data = '';

    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('id')
            ->add('custom', 'string', array('template' => 'SonataMediaBundle:MediaAdmin:list_custom.html.twig'))
        ;
        $this->data = 'something';
    }
}

並在您的模板中:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    <div>
        {{ admin.data }}
    </div>
{% endblock %}

如果你有一個由object的id索引的數組,你可以這樣訪問它:

  {{ attribute( admin.data, object.id) }}
class MediaAdmin extends Admin

{
    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('id')
            ->add('image', 'string', array('template' => 'SonataMediaBundle:MediaAdmin:list_image.html.twig','data'=>'something'))
            ->add('custom', 'string', array('template' => 'SonataMediaBundle:MediaAdmin:list_custom.html.twig'))
        ;
    }
}

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    {{field_description.options.data}}
{% endblock %}

將自定義數據放入管理類的成員。 然后從列表字段模板中調用它。

public $customData = array(1,2,3);

然后在樹枝上打電話給它。

意識到重命名的變量。 我的5美分。 版本:Symfony 2.6,Sonata Admin 2.3

我重寫了sonata_type_collection_widget。 我在Admin類中設置了變量,但是在試圖找出如何訪問admin變量時丟失了一個小時。 實際上,您可以從管理類調用方法和訪問變量。

以下是2.3中的完成方式:

{% block sonata_type_collection_widget %}
    {{ dump(sonata_admin.admin.test1) }}
{% endblock sonata_type_collection_widget %}

試試這個解決方案:AdminClass:

protected function configureListFields(ListMapper $listMapper){
    ->add('_action', 'actions', [
        'actions' => [
            'replay' => [
                'template' => 'MyAdminBundle:CRUD:list__action_replay.html.twig',
                'data' => 'My custom datas pass to the template'
            ]
        ]
    ]);
}

模板list__action_replay.html.twig

{{ dump(field_description.options.actions.replay.data)}}

玩得開心:

{{ dump(field_description.options)}}

暫無
暫無

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

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