2016-04-24 26 views
2

我有一個Post實體可以有多個註釋。我想在帖子列表視圖中顯示一個鏈接作爲一個新列。在Sonata管理列表映射器中獲取實體參數值和自定義文本列

爲此我定義了一個將在Post列表生成器中使用的路由。

admin_post_comments: 
    prefix: /admin 
    path: /post/{post_id}/comment/list 


protected function configureListFields(ListMapper $listMapper) 
{ 
     $listMapper 
      ->addIdentifier('title', null, array('label' => 'Title')) 
      ->add('comments', 'url', 
       array('label' => 'Comments', 
         'route' => array(
         'name' => 'admin_post_comments', 
         'parameters' => array('post_id' => 'post.id') 
        ))); 
} 

但是,我怎樣才能得到每一行的實際「職位ID」,以便生成正確的你?現在URL會是「/post/post.id/comment/list」,但需要是「/ post/1/comment/list」

當我選擇「comments」作爲列字段類型時,那麼字段保持空白。我怎樣才能將它寫入「查看評論」?

感謝,

亨德里克

回答

1

我認爲你沒有訪問以這種方式這一信息。但是,如果你以這種方式定義字段模板:

 ->add('comments', 'url', array(
      'label' => 'Comments', 
      'template' => ':list:list.template.comments.html.twig' 
     )) 

在這個另一種方式,你可以定義一個樹枝你的鏈接,並且還必須包括評論數,如果你想要的。類似的事情是這樣的:

<td class="sonata-ba-list-field sonata-ba-list-field-{{ field_description.type }}" objectId="{{ admin.id(object) }}"> 
{{ path(admin_post_comments, {'id': object.id}) }}<span class="badge"">{{ object.comments|length }}</span> 

在這嫩枝,你可以訪問管理員,對象(PO​​ST),價值和許多其它變量

相關問題