Получить значение внутри поля с помощью пользовательской ветки / Выбрать столбец по имени блока / Соната

Я постараюсь быть максимально понятным, поскольку мой вопрос может быть непростым.

У меня есть Sonata GridPanel, смоделированный (упрощенный), как это:

~~~~~~~~~~~~~~~
Имя | Тип | капля

~~~~~~~~~~~~~~~
Боби | Аааа | 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-файле будет знать о значении, возвращаемом параметрами.

Например, согласно моей сетке и в предположении, что идентификатором моего объекта является столбец Name, если я нажму на Bbbb, {{ admin.id(object) }} вернет Boby в качестве значения.

Это работает.

Теперь я хочу сделать то же самое, но не возвращает идентификатор целого объекта, а определенное значение объекта.
Тем не менее, в соответствии с моим примером, если я нажму на Bbbb, я бы хотел получить значение, содержащееся в столбце Тип для этого объекта. Значение должно быть тогда Aaaa.

Но я не знаю, как это сделать. Я попытался передать этот {{block ('field')}}, но он не нацелен на определенный столбец.
Как выбрать блок по названию.

Я не достаточно знаком с веткой, и я совершенно растерялся, заглядывая во все файлы веток Сонаты.
Как я мог это сделать?

Вы должны знать, что в моем случае значение, которое я хочу получить, "контролируется" веточкой сонаты, а не моей собственной веточкой.

1 ответ

Решение

Я думаю, что вы можете сделать это с помощью object Вар из шаблона:

{% 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 для получения дополнительной информации

Другие вопросы по тегам