2013-05-16 59 views
2

的形式奏鳴曲管理我嘗試添加像場的預覽編輯表單:添加預覽圖像中的symfony

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

和德簡介:

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

在展示方法這很簡單,創建模板,但我沒有找到解決方案, 謝謝!

索納塔聯繫包版本:2.0

+0

參見:HTTP ://stackoverflow.com/questions/11366278/how-to-display-the-current-picture-above-the-upload-field-in-sonataadminbundle/42158303#42158303 –

回答

1

您可以覆蓋SonataAdmin的base_edit.html模板。要做到這一點,你必須在你的實體管理地址:

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

索納塔使用的新版本:

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