Zum Inhalt springen

getter für n:1 Relation im Model

Erstellt am 10. September 2013 · 4 Antworten · letzte Antwort am 11. September 2013

Tags: Frage

BlackPixel ·

Hallo Leute,

kurze Frage:

Ich habe Branchsection (n) und Branch (1) in einer n:1 Relation. Das ich über das Model der Branch die Branchsection bekomme ist klar.

Wie kann ich aber aus Branchsection einen ObjectStorage der verbundenden Branches bekommen? Ich hab nicht wirklich Lust im Controller einen QueryResult von Branchsection -> findAll() zu schleifen um dann die Abfrage auf das Branchrepository zu machen um die Objekte manuell der Branchsection zuzuweisen.

Bei FLOW geht das ja entsprechend mit einer Annotation in beiden models. Was bietet mir hier extbase? Ist es dirty im Model das repository zu injecten und mit einem getter das Objectstorage dort zu füllen? Oder gibt es noch alternativen?

Danke!

BlackPixel ·

Hier vielleicht noch zu Verdeutlichung der fragwürdige Abschnitt aus dem Modell:

    /**
     * branches
     *
     * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\VOLUMEN\Collaboration\Domain\Model\Branch>

     */
    protected $branches;
    
    /**
     * branchsectionRepository
     *
     * @var \VOLUMEN\Collaboration\Domain\Repository\BranchRepository
     * @inject
     */
    protected $branchRepository;

    /**
     * Returns the title
     *
     * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage $os
     */
    public function getBranches() {
        $branches = $this->branchRepository->findByBranchsection($this);
        $os =  new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
        if($branches->count() > 0){
            foreach ($branches as $branch) {
                $os->attach($branch);            
            }
        }
        return $os;
    }
BlackPixel ·

Du glaubst? IRRE hilft aber nicht weiter, denn IRRE baut auf einer 1:1 Relation auf, zumindest was ich jetzt so im Kopf habe. Hast Du dazu mehr Infos?