如何将变量数组传递给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
。
答案 0 :(得分:11)
刚刚详细说明了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) }}
答案 1 :(得分:3)
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 %}
答案 2 :(得分:0)
将自定义数据放入管理类的成员。然后从列表字段模板中调用它。
public $customData = array(1,2,3);
然后在树枝上打电话给它。
答案 3 :(得分:0)
了解重命名的变量。我的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 %}
答案 4 :(得分:0)
请尝试以下解决方案: 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'
]
]
]);
}
模板列表__action_replay.html.twig
{{ dump(field_description.options.actions.replay.data)}}
仅用:
{{ dump(field_description.options)}}