Symfony 如何将变量传递给sonata管理自定义列表操作?
如何将变量数组传递给Symfony 如何将变量传递给sonata管理自定义列表操作?,symfony,sonata-admin,Symfony,Sonata Admin,如何将变量数组传递给SonataMediaBundle:MediaAdmin:list\u image.html.twig? 似乎没有任何选择 class MediaAdmin extends Admin { protected function configureListFields(ListMapper $listMapper) { $listMapper ->addIdentifier('id') -&g
SonataMediaBundle:MediaAdmin:list\u 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'
))
;
}
}
类MediaAdmin扩展了Admin
{
受保护的函数configureListFields(ListMapper$ListMapper)
{
$listMapper
->addIdentifier('id')
->添加('image','string',数组(
'template'=>'SonataMediaBundle:MediaAdmin:list_image.html.twig',
数组('data'=>'something')'SonataMediaBundle:MediaAdmin:list_custom.html.twig'
))
;
}
}
模板:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
{{dump(data)}} <<- This is not working
{% endblock %}
{%extends'SonataAdminBundle:CRUD:base\u list\u field.html.twig%}
{%块字段%}
{{dump(data)}}将自定义数据放入admin类的成员。然后从列表字段模板调用它
public $customData = array(1,2,3);
然后在细枝上叫它。只是详细说明蒂格兰的答案
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 %}
注意重命名的变量。我的五美分。
版本:Symfony 2.6,Sonata Admin 2.3
我正在覆盖sonata_type_collection_小部件。
我确实在管理类中设置了变量,但花了一个小时试图弄清楚如何访问管理变量。实际上,您可以从admin类调用方法和访问变量
下面是在2.3中如何实现的:
{% block sonata_type_collection_widget %}
{{ dump(sonata_admin.admin.test1) }}
{% endblock sonata_type_collection_widget %}
让我们试试这个解决方案:
管理员级别:
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'
]
]
]);
}
模板列表\u操作\u replay.html.twig
{{ dump(field_description.options.actions.replay.data)}}
享受以下乐趣:
{{ dump(field_description.options)}}
您需要重写admin类的curd控制器,然后在curd控制器中重写listAction()
方法并通过此方法传递变量。必须有更简单的方法:(如果您可以获取值实体类,如getMyCustomValue(){return 1;}
,然后在twig中,您可以通过{{object.getMyCustomValue()}
我认为您的“数据”应该显示为field_description.options数组的一个元素。试试这个{{dump(field_description.options | keys)}}哪个解决方案适合您@wilsonrufus?
{{ dump(field_description.options.actions.replay.data)}}
{{ dump(field_description.options)}}