Heim > Backend-Entwicklung > PHP-Tutorial > 在 symfony2 中使用 sonata-bundle,如何更加便捷地管理数据信息?

在 symfony2 中使用 sonata-bundle,如何更加便捷地管理数据信息?

WBOY
Freigeben: 2016-07-06 13:53:54
Original
1054 Leute haben es durchsucht

我目前有3张表goodscategory and brand,在sonata后台中,我希望可以把类别名称和品牌名称全部显示在货品列表,下图有详细的信息:

在 symfony2 中使用 sonata-bundle,如何更加便捷地管理数据信息?

在 symfony2 中使用 sonata-bundle,如何更加便捷地管理数据信息?

从上图可以看出,iphone6plus的类别是mobile,这里我在yml文件中定义了many-to-one的关系,这里显示是正确的,但是brand.name很明显错了,iphone6plus的品牌应该是apple,这里我有疑问,我我在 goods.yml 文件中定义了两次many-to-one关系,第二次定义的是goodsbrand表,并没有正确显示。

我想更便捷地管理货品信息,在同一页面,浏览商品类别和品牌,在编辑页面同理,我应该如何实现呢?下面是我的代码块:

brand.orm.yml

<code>Application\Sonata\MallBundle\Entity\Brand:
    type: entity
    table: brand
    ...
oneToMany:
    goods:
        targetEntity: Goods
        mappedBy: brand
lifecycleCallbacks: {  }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

goods.orm.yml

<code>Application\Sonata\MallBundle\Entity\Goods:
type: entity
table: goods
repositoryClass: Application\Sonata\MallBundle\Repository\GoodsRepository
...
manyToOne:
    category:
        targetEntity: Category
        inverseBy: goods
        joinColumn:
            name: category_id
            referencedColumnName: id
manyToOne:
    brand:
        targetEntity: Brand
        inverseBy: goods
        joinColumn:
            name: brand_id
            referencedColumnName: id
lifecycleCallbacks: {  }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

category.orm.yml

<code>
Application\Sonata\MallBundle\Entity\Category:
type: entity
table: category
repositoryClass: Application\Sonata\MallBundle\Repository\CategoryRepository
...
oneToMany:
    goods:
        targetEntity: Goods
        mappedBy: category
lifecycleCallbacks: {  }</code>
Nach dem Login kopieren
Nach dem Login kopieren

您的建议,对我来说是莫大的帮助。

回复内容:

我目前有3张表goodscategory and brand,在sonata后台中,我希望可以把类别名称和品牌名称全部显示在货品列表,下图有详细的信息:

在 symfony2 中使用 sonata-bundle,如何更加便捷地管理数据信息?

在 symfony2 中使用 sonata-bundle,如何更加便捷地管理数据信息?

从上图可以看出,iphone6plus的类别是mobile,这里我在yml文件中定义了many-to-one的关系,这里显示是正确的,但是brand.name很明显错了,iphone6plus的品牌应该是apple,这里我有疑问,我我在 goods.yml 文件中定义了两次many-to-one关系,第二次定义的是goodsbrand表,并没有正确显示。

我想更便捷地管理货品信息,在同一页面,浏览商品类别和品牌,在编辑页面同理,我应该如何实现呢?下面是我的代码块:

brand.orm.yml

<code>Application\Sonata\MallBundle\Entity\Brand:
    type: entity
    table: brand
    ...
oneToMany:
    goods:
        targetEntity: Goods
        mappedBy: brand
lifecycleCallbacks: {  }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

goods.orm.yml

<code>Application\Sonata\MallBundle\Entity\Goods:
type: entity
table: goods
repositoryClass: Application\Sonata\MallBundle\Repository\GoodsRepository
...
manyToOne:
    category:
        targetEntity: Category
        inverseBy: goods
        joinColumn:
            name: category_id
            referencedColumnName: id
manyToOne:
    brand:
        targetEntity: Brand
        inverseBy: goods
        joinColumn:
            name: brand_id
            referencedColumnName: id
lifecycleCallbacks: {  }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

category.orm.yml

<code>
Application\Sonata\MallBundle\Entity\Category:
type: entity
table: category
repositoryClass: Application\Sonata\MallBundle\Repository\CategoryRepository
...
oneToMany:
    goods:
        targetEntity: Goods
        mappedBy: category
lifecycleCallbacks: {  }</code>
Nach dem Login kopieren
Nach dem Login kopieren

您的建议,对我来说是莫大的帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage