[英]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.