使用自定义树枝在字段内检索值/按块名称/ Sonata选择列

时间:2014-01-21 14:28:21

标签: twig sonata-admin symfony-sonata

我会尽量明确,因为我的问题可能并不简单。

我有一个Sonata GridPanel,这样建模(简化):

~~~~~~~~~~~~~~~
名称|输入|团块

~~~~~~~~~~~~~~~
Boby | Aaaa | BBBB
约翰| Cccc | XXXX

假设列 Blob 是我制作的自定义列,您可以单击该列 它由一个自定义树枝控制。

我的自定义树枝就像这样

{% extends stuff %}
{% block field%}
<div class="opener">
    <img 
    src="{{ asset('bundles/bobby/images/map_magnify.png') }}" 
    width="30" 
    height="30"
    style="cursor:pointer;" 
    onclick="createPopUp('{{ admin.id(object) }}');"  
    >
</div>
{% endblock %}

正如您所看到的,我将 {{admin.id(object)}} 作为函数的参数传递,因此我的JS文件中的函数将知道返回的值参数。

例如,根据我的网格,假设我的对象的ID是列名,如果我点击 Bbbb {{admin.id(object)}} Boby 作为值返回。

这很有效。

现在,我想做同样的事情,但不会返回整个对象的ID,而是返回对象的特定值。
仍然根据我的例子,如果我点击 Bbbb ,我想检索此对象的列类型中包含的值。那么该值应该是 Aaaa

但我不知道该怎么做。 我试图通过这个 {{block('field')}} ,但它没有针对特定的列。
如何通过它的名称选择块。

我对树枝不太熟悉,而且我很遗憾地看到所有索纳塔的枝条文件。
我怎么能这样做?

在我的情况下,您必须知道,我想要检索的值是由Sonata的Twig“控制”的,而不是我的自定义树枝。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用模板中的object var来执行此操作:

{% extends stuff %}
{% block field%}
<div class="opener">
    <img 
    src="{{ asset('bundles/bobby/images/map_magnify.png') }}" 
    width="30" 
    height="30"
    style="cursor:pointer;" 
    onclick="createPopUp('{{ object.type }}');"  
    >
</div>
{% endblock %}

从sonata管理文档中查看row templates以获取更多信息