Использование Symfony2 с Sonata, в списке шаблоны полей могут быть перезаписаны и назначить переменные шаблонам, например setTemplateVar(), иногда могут быть полезны! (не говоря о форме, где «attr» служит этой цели, но список ...)В symfony2 с sonata: Как передать переменную в шаблон, определенный для заданного поля listmapper в методе configureListFields?
Я хотел бы знать, что было бы лучшим подходом, чтобы передать переменную шаблону, определенному для заданного поля listmapper в метод configureListFields?
<?php
namespace Acme\AcmeBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Sonata\AdminBundle\Form\FormMapper;
class AcmeAdmin extends Admin
{
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('acme_field')
->add('date', 'date', array(
'template' => "AcmeBundle:CRUD:list_date.html.twig",
// 'dateFormat' => "Y-m-d",// ---> how to pass this var to twig ?
))
->add('_action', 'actions', array(
'actions' => array(
'edit' => array(),
'delete' => array(),
),
))
;
}
Решение конкретной задачи перевода и форматирование даты уже реализована с помощью шаблона веточку следующим образом:
{% block field%}
{% if value is empty %}
{% else %}
{# retrieving the dateFormat variable from the listmapper #}
{% if dateFormat is defined %}
{{ value|date(dateFormat)|title }}
{% else %}
{{ value|date('m/Y') }}
{% endif %}
{# passing the locale in some way here would be great, it is not available in twig.. #}
{# scratch that, it is not necessary with intl.extension... #}
{% if locale is defined %}
{% set dflt_locale = locale %}
{% else %}
{% set dflt_locale = 'fr_FR.UTF-8' %}
{% endif %}
{{ value|localizeddate('medium', 'none', dflt_locale)|title }}
{% endif %}
{% endblock %}
Однако моя цель состоит в том, чтобы иметь возможность получить переменную там из listmapper.
В примере предложен, то DateFormat будет хорошим, чтобы пройти ...
Вопрос о локализации прекрасно на самом деле, как я понял, что не нужно быть переданы localizeddate ... его уже доступен через внутреннее расширение.
Следующий ответ сообщения приводит меня к такому выводу, поскольку я не мог определить локаль, но не добавляя параметр, который был разрешен! Localize dates in twigs using Symfony 2 отсюда:
{{ value|localizeddate('medium', 'none')|title }}
Приветствия заранее для любого ответа, связанного с параметром DateFormat!
Vinz
Высокий, отлично работает, THx Axel – MediaVince