2016-04-08 8 views
1

Ich habe ORM:Doctrine2 Sluggable mit dem Feld mit Verein

Something\SomeBundle\Entity\MyTable: 
type: entity 
table: my_table_name 
id: 
    id: 
     type: bigint 
     id: true 
     generator: 
      strategy: AUTO 
fields: 
    name: 
     type: string 
     length: '64' 
     nullable: true 
    slug: 
     type: string 
     length: '255' 
     nullable: true 
     gedmo: 
      slug: 
       separator: - 
       style: default 
       updatable: false 
       fields: 
        - master 
        - name 
manyToOne: 
    master: 
     targetEntity: Master 
     joinColumn: 
      name: master_id 
      referencedColumnName: id 

aber das funktioniert nicht auf prod Umgebung (Fehler: Kann nicht Slug finden [master] wie abgebildet Eigenschaft in Einheit - Something \ SomeBundle \ Entity \Mein Tisch). Warum? Wie man es repariert?

+0

Unter der Annahme, diese auf demselben Server ist, haben Sie klar Cache mit der ' --env = prod' Flagge? – Egg

+0

Cache wird gelöscht (Konsolencache: clear --env = prod) verursacht Fehler [Gedmo \ Exception \ InvalidMappingException] "Kann slug [master] als zugeordnete Eigenschaft in Entity nicht finden - Something \ SomeBundle \ Entity \ MyTable" – Marzena

+0

vielleicht nur ein einfaches 'fields: [master.name, name]' oder du brauchst den treeslughandler - siehe meine Antwort unten. – Rufinus

Antwort

1

Ich habe eine Lösung, wenn jemand anderes das gleiche Problem hat

Something\SomeBundle\Entity\MyTable: 
    type: entity 
    table: my_table_name 
    id: 
    id: 
     type: bigint 
     id: true 
     generator: 
     strategy: AUTO 
    fields: 
    name: 
     type: string 
     length: '64' 
     nullable: true 
    slug: 
     type: string 
     length: '255' 
     nullable: true 
     gedmo: 
     slug: 
      handlers: 
       'Gedmo\Sluggable\Handler\RelativeSlugHandler': 
        relationField: master 
        relationSlugField: id 
        separator: - 
      separator: - 
      style: default 
      updatable: false 
      fields: 
       - name 
    manyToOne: 
    master: 
     targetEntity: Master 
     joinColumn: 
     name: master_id 
     referencedColumnName: id 
1

vielleicht das gibt Ihnen einige führt:

/** 
* @ORM\Column(type="string", length=200, nullable=false) 
* @Gedmo\Slug(
*  fields={"name"}, 
*  handlers={@Gedmo\SlugHandler(
*    class="Gedmo\Sluggable\Handler\TreeSlugHandler", 
*    options={ 
*     @Gedmo\SlugHandlerOption(name="parentRelationField", value="parent"), 
*     @Gedmo\SlugHandlerOption(name="separator", value="/") 
*    } 
*  )} 
*) 
*/ 
private $slug; 
+0

Danke, Ihre Antwort gab mir einen Hinweis! :) – Marzena