Med*_*nce 3 listfield symfony-sonata sonata-admin
使用Symfony2和Sonata,在列表中,字段模板可以被覆盖并将变量分配给模板,即setTemplateVar(),有时可能有用!(不是说'attr'用于此目的的形式,而是列出......)
我想知道将变量传递给在configureListFields方法中为listmapper的给定字段定义的模板的最佳方法是什么?
<?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(),
),
))
;
}
Run Code Online (Sandbox Code Playgroud)
使用twig模板已经实现了翻译和格式化日期的特定问题的解决方案,如下所示:
{% 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 %}
Run Code Online (Sandbox Code Playgroud)
但是,我的目标是能够从listmapper中检索变量.
在提出的示例中,dateFormat将是一个很好的传递...
关于语言环境的问题实际上很好,因为我意识到它不需要传递给localizeddate ...它已经可以通过intl扩展.
下面的帖子回答引导我得出结论,因为我无法定义语言环境,但是没有添加参数就解决了! 使用Symfony 2在树枝中本地化日期 因此:
{{ value|localizeddate('medium', 'none')|title }}
Run Code Online (Sandbox Code Playgroud)
对于与dateFormat参数相关的任何响应,请提前干杯!
Vinz
小智 16
试试Twig
field_description.options.YOURFIELDNAME
Run Code Online (Sandbox Code Playgroud)
在这里定义
->add('date', 'date', array(
'template' => "AcmeBundle:CRUD:list_date.html.twig",
'YOURFIELDNAME' => 'Blablo'
))
Run Code Online (Sandbox Code Playgroud)
干杯
| 归档时间: |
|
| 查看次数: |
9246 次 |
| 最近记录: |