在表格sonata admin of symfony中添加预览图像

时间:2013-05-16 10:59:53

标签: image symfony preview sonata-admin symfony-sonata

我尝试以编辑形式添加图像字段的预览:

/**
* @ORM\Column(name="firma",type="string", length=500,nullable=true)
*/
private $image;

和de Profile:

public function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('image',null,array(
                'label'=>'forms.labels.firma'
            ))

在show方法中它很简单,创建模板,但我没有找到解决方案, 谢谢!

Sonata Admin Bundle版本:2.0

2 个答案:

答案 0 :(得分:2)

您可以覆盖SonataAdmin的base_edit.html模板。为此,您必须添加您的实体Admin:

public function getEditTemplate()
{
    return 'YourBundle:Sonata:base_edit.html.twig';
}

然后,复制新模板,与原始base_edit.html模板相同。表格打印的地方是:

{% for name, form_group in admin.formgroups %}
    <fieldset {% if form_group.collapsed %}class="sonata-ba-fielset-collapsed"{% endif %}>
        <legend>
            {% if form_group.collapsed %}
                <a href="" class="sonata-ba-collapsed" title="{% trans from 'SonataAdminBundle' %}link_expand{% endtrans %}">{{ name|trans({}, admin.translationdomain) }}</a>
            {% else %}
                {{ name|trans({}, admin.translationdomain) }}
            {% endif %}
        </legend>

        <div class="sonata-ba-collapsed-fields">
            {% for field_name in form_group.fields %}
                {% if admin.formfielddescriptions[field_name] is defined %}
                    {{ form_row(form[field_name])}}
                {% endif %}
            {% endfor %}
        </div>
    </fieldset>
{% endfor %}

然后,您可以在表单中添加自己的代码。 变量名称是表单的每个图例的名称,因此您可以放置​​自己的代码和所需的图例;)

答案 1 :(得分:1)

对于较新版本的Sonata使用:

public function getTemplate($name)
{        
    switch ($name) {
        case 'edit':
            return 'YourBundle:Sonata:base_edit.html.twig';
            break;
        default:
            return parent::getTemplate($name);
            break;
    }
}