Moin Forum, bin gerade dabei über Doctrine eine Tabelle anzulegen. Funktioniert soweit auch gut. Da es aber JOINS mit anderen Tabellen gibt, entsteht ein Problem mit der Kollation. Die Shopware eigenen Tabellen sind in utf8_unicode_ci angelegt und die, welche ich über das Model anlegen möchte, wird in utf8_general_ci erzeugt. Im Model habe ich bereits versucht per “options” die Tabelle richtig zu erzeugen aber leider hat es nicht funktioniert: /\*\* \*... \* @ORM\Table(name="muster", options={"collate"="utf8\_unicode\_ci"}) \*/
Damit ich erst einmal arbeiten kann, lege ich die Tabelle per SQL an aber elegant ist das natürlich nicht. Wenn jemand etwas Kode benötigt, hier sind die Problemzonen: Bootstrap $em = $this-\>Application()-\>Models(); $tool = new \Doctrine\ORM\Tools\SchemaTool($em); $classes = array( $em-\>getClassMetadata('Shopware\CustomModels\Demo\Demo') ); try { $tool-\>createSchema($classes); } catch (\Doctrine\ORM\Tools\ToolsException $e) { // ignore }
Model namespace Shopware\CustomModels\Demo; use Shopware\Components\Model\ModelEntity, Doctrine\ORM\Mapping AS ORM, Symfony\Component\Validator\Constraints as Assert, Doctrine\Common\Collections\ArrayCollection; /\*\* \* Shopware\CustomModels\Demo\Demo \* \* @ORM\Entity(repositoryClass="Repository") \* @ORM\Table(name="demo", options={"collate"="utf8\_unicode\_ci"}) \* @ORM\HasLifecycleCallbacks \*/ class Exclude extends ModelEntity
Freue mich auf Lösungsvorschläge.
Das Modell sollte so installiert werden $em-\>getClassMetadata('Shopware\CustomModels\Demo\Exclude')
und nicht $em-\>getClassMetadata('Shopware\CustomModels\Demo\Demo')
Dann sollte es gehen.
Danke für den Tipp, werde ich mal versuchen. Aber wenn ich jetzt an andere symfony Projekte denke, kann ich unter …/Demo/ ja auch noch andere entities ablegen neben Demo. Das sollte doch dann auch gehen? Bestes Beispiel sind die ganzen Article entities. Gesendet von meinem iPhone mit Tapatalk
Ich erzähle Unsinn. Du hast recht. Habe erst geschrieben dann gelesen. Gesendet von meinem iPhone mit Tapatalk