我在symfony gedmo doctrine extensions中遇到了父子列表视图的问题。
我的列表显示了同一级别的所有内容,我不知道如何解决它。
我尝试使用datagridvalues
按lft
字段排序,但它无效。
我的category.orm.yml
文件
Application\AdminBundle\Entity\Category:
type: entity
table: Category
gedmo:
tree:
type: nested
id:
id:
type: integer
generator:
strategy: AUTO
fields:
name:
type: string
length: 255
image_url:
type: string
length: 255
slug:
type: string
nullable: false
unique: true
lft:
type: integer
gedmo:
- treeLeft
rgt:
type: integer
gedmo:
- treeRight
root:
type: integer
gedmo:
- treeRoot
lvl:
type: integer
gedmo:
- treeLevel
oneToMany:
children:
targetEntity: Category
mappedBy: parent
manyToOne:
parent:
targetEntity: Category
inversedBy: children
gedmo:
- treeParent
joinColumns:
Category_id:
referencedColumnName: id
lifecycleCallbacks: { }
我的configureListFields方法:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('id')
->add('name')
->add('slug')
;
}
答案 0 :(得分:0)
我和这个人打得太久了;)
我在一些codeproject的文章中发现,奏鸣曲管理员不支持树结构渲染(文章来自2012年,所以可能有些事情发生了变化)。 无论如何,我的解决方案很简单
在category.php
我添加了
public function __toString()
{
$prefix = '';
for ($i=1; $i<= $this->lvl; $i++){
$prefix .= ' ';
}
return $prefix . $this->name;
}
public function getLaveledTitle()
{
return (string)$this;
}
并在CategoryController.php
configureListFields
方法{i}已将name
字段更改为
$listMapper
//if you will not add 'html' as field type ` ` will not be parsed as html
->add('laveled_title', 'html', array(
'strip' => true,
'label' => 'Category Name'
))
;