gpt4 book ai didi

symfony - 奏鸣曲管理包 : Adding link to related entities in configure list

转载 作者:行者123 更新时间:2023-12-03 22:03:15 25 4
gpt4 key购买 nike

我想提供指向我当前实体列表相关实体的直接链接。
我试过使用 addIdentifier对于相关实体列,但它将我重定向到我当前的实体。
我在文档中没有找到任何解释如何实现这一点的内容。
这是我正在做的一个例子:
enter image description here
我目前正在列出我的“数据配置文件”实体。它们具有相关实体,例如“Entrainement”、“Niveau”或“Programme”。如果我点击“Se defouler”,我想被重定向到“程序”列表,对于显示相关实体的每个列也是如此。
这是我的 configureListFields从我当前的管理类实现:

/**
* @param ListMapper $listMapper
*/
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier( 'type.titre' , null, array ( 'label' => 'Type') )
->add('valeur', null, array ( 'label' => 'Valeur' ) )
->add('bioprofile.titre', null, array ( 'label' => 'Bio Profile' ) )
->add( 'exercicesData.entrainement.niveau.titre', null, array( 'label' => 'Niveau' , 'route' => array( 'name' => 'edit') ) )
->add( 'exercicesData.entrainement.titre' , many_to_one, array ( 'label' => 'Entrainement' ) )
->add( 'exercicesData.entrainement.niveau.programme.titre' , null , array ( 'label' => 'Programme' ) )
->add('_action', 'actions', array(
'actions' => array(
'show' => array(),
'edit' => array(),
'delete' => array(),
)
))
;
}
我尝试了不同的方法:
  • 一个带有选项“路由”的选项,其中包含一个数组,其中相关实体的操作名称重定向(根据官方文档)
  • 另一个具有“many_to_one”列表类型,根据官方文档,它重定向到目标实体。

  • 它们都不起作用。
    PS:截图中,有一些关于“Niveau 2”、“Seance 1”和“se defouler”的链接。它们实际上是使用 addIdentifier 显示的.

    最佳答案

    Sonata 仅在您添加实体时添加到相关实体的链接,而不是在您添加实体的属性时。

    以下示例将添加指向 Entity2 的链接:

    /**
    * @param ListMapper $listMapper
    */
    protected function configureListFields(ListMapper $listMapper)
    {
    $listMapper
    ...
    ->add('Entity2')
    ...
    ;
    }

    而此示例不会添加指向 entity2 的链接。 :
    /**
    * @param ListMapper $listMapper
    */
    protected function configureListFields(ListMapper $listMapper)
    {
    $listMapper
    ...
    ->add('Entity2.name')
    ...
    ;
    }

    如果要显示 name链接中的属性,您必须添加或更改 __toString() Entity2 中的方法:
    class Entity2
    {
    ...
    public function __toString()
    {
    return (string) $this->name;
    }
    }

    你的管理类应该是这样的:
    /**
    * @param ListMapper $listMapper
    */
    protected function configureListFields(ListMapper $listMapper)
    {
    $listMapper
    ->addIdentifier( 'type.titre' , null, array ( 'label' => 'Type') )
    ->add('valeur', null, array ( 'label' => 'Valeur' ) )
    ->add('bioprofile.titre', null, array ( 'label' => 'Bio Profile' ) )
    ->add( 'exercicesData.entrainement.niveau', null, array( 'label' => 'Niveau' , 'route' => array( 'name' => 'edit') ) )
    ->add( 'exercicesData.entrainement' , many_to_one, array ( 'label' => 'Entrainement' ) )
    ->add( 'exercicesData.entrainement.niveau.programme' , null , array ( 'label' => 'Programme' ) )
    ->add('_action', 'actions', array(
    'actions' => array(
    'show' => array(),
    'edit' => array(),
    'delete' => array(),
    )
    ))
    ;
    }

    您应该更改以下实体:

    实体 Entrainement :
    class Entrainement
    {
    ...
    public function __toString()
    {
    return (string) $this->titre;
    }
    }

    实体 Niveau :
    class Niveau
    {
    ...
    public function __toString()
    {
    return (string) $this->titre;
    }
    }

    实体 Programme :
    class Programme
    {
    ...
    public function __toString()
    {
    return (string) $this->titre;
    }
    }

    希望这可以帮助

    关于symfony - 奏鸣曲管理包 : Adding link to related entities in configure list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916083/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com