Quantcast
Channel: Programming - Shopware Community Forum
Viewing all articles
Browse latest Browse all 118

Neue ManyToMany-Beziehung zu ArticleDetail

$
0
0
Hallo Forum,

ich möchte für ein Plugin eine neue ManyToMany-Beziehung zu ArticleDetail hinzufügen.

Genauergesagt:

ArticleDetail <<->> MeinZeug

Ein ArticleDetail kann n MeinZeugs haben und ein MeinZeug kann n ArticleDetails zugeordnet werden.

(Sorry für die bescheuerten "MeinZeug"-Namen, ist leider aus politischen Gründen notwendig...)

In meiner Bootstrap.php lege ich das neue MeinZeug an:
private function createDatabaseTables()
    {
        $this-&gt;registerCustomModels();

        $em = $this-&gt;Application()-&gt;Models();
        $tool = new \Doctrine\ORM\Tools\SchemaTool($em);

        $classes = array(
            $em-&gt;getClassMetadata('Shopware\CustomModels\Dings\MeinZeug')
        );

        try {
            $tool-&gt;createSchema($classes);
        } catch (\Doctrine\ORM\Tools\ToolsException $e) {
            // ignore
        }
    }
Im CustomModel MeinZeug habe ich die ManyToMany-Beziehung wie folgt definiert:
 /**
     * @ORM\ManyToMany(targetEntity="Shopware\Models\Article\Detail", mappedBy="meinZeugs")
     * @ORM\JoinTable(name="s_article_meinzeug_relations",
     *      joinColumns={
     *          @ORM\JoinColumn(name="article_id", referencedColumnName="id")
     *      },
     *      inverseJoinColumns={
     *          @ORM\JoinColumn(name="meinzeug_id", referencedColumnName="id")
     *      }
     * )
     * @var ArrayCollection
     */
    protected $articles;
Das createSchema() aus der Bootstrap legt auch brav die Tabelle 's_meinzeug' an, die Tabelle 's_article_meinzeug_relations' allerdings nicht.

Sollte sie das? Ich hab's zumindest so verstanden... Oder braucht es dafür im ArticleDetail-Model die meinZeugs-property? Die krieg ich da aber ohne den Core anzufassen gar nicht rein!

Wäre für Hilfe echt dankbar!

Schönen Gruß

Martin

Viewing all articles
Browse latest Browse all 118

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>