Locallang vs. Tabelle [Gelöst]

  • Coreblade Coreblade
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    04. 09. 2012, 13:53

    Hallo zusammen

    Was macht mehr sind bzw. ist "state of the art" bei einer Zuweisung.
    Ich habe eine Person, welche einer Firma zugeordnet ist. Macht es jetzt Sinn alle Firmennamen in der Locallang zu speichern und anschliessend das Select zu befüllen oder eher statt Locallang eine Tabelle einzusetzen? Betrifft das Backend sowie das Frontend.

    Was meint Ihr?

    Besten Dank und Gruss
    Coreblade


  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    04. 09. 2012, 21:37

    Das hat nichts mit "state of the art" zu tun.

    Entscheide du:
    Daten in der LL: Statischer Text, der sich eher nicht ändert
    Daten in der Datenbank: Von Redakteuren und anderen Benutzern änderbarer Inhalt
    Daten im TypoScript/HTML-Template: Von Administratoren änderbarer Inhalt

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • Coreblade Coreblade
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    05. 09. 2012, 08:44

    Danke für Deine Antwort. Sie hat mir sehr geholfen. :)

  • Coreblade Coreblade
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    05. 09. 2012, 14:14

    Habe nun noch gleich eine andere Frage:

    Ich möchte ein Select mit Werten aus einer Tabelle befüllen.
    Habe schon versucht das Ganze mit Dependency Injection zu lösen oder mit makeInstance. Aber ich komme einfach nicht an die Daten ran?
    Wie macht man das?

    Besten Dank
    Coreblade

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    05. 09. 2012, 14:36

    Mach im Controller ein findAll() und übergebe die Objekte in einer Variable an den View. Dort dann den Selectviewhelper befüllen.

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • Coreblade Coreblade
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    05. 09. 2012, 14:38

    Problem ist, dass die Objekte aus einer anderen Tabelle stammen:
    Aktueller Controller ist Tabelle Club. Ich brauche aber die Daten der Tabelle See welche in 1:1 Beziehung mit Club steht.

  • Coreblade Coreblade
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    05. 09. 2012, 16:57

    Nachtrag:

    Ich will dies erreichen:

    1. $test = New Tx_IsClubmanager_Domain_Model_Lake();
    2. $test->SetName("Test" );
    3. $testarr = array();
    4. $testarr[0] = $test;

    Das Array testarr übergebe ich dann der View. Das muss doch irgendwie über das Repository des Lakes möglich sein? Aber ich befinde mich ja im Context vom ClubController bzw. ClubRepository:

    1. /**
    2.   * clubRepository
    3.   *
    4.   * @var Tx_IsClubmanager_Domain_Repository_ClubRepository
    5.   */
    6. protected $clubRepository;
    7.  
    8. /**
    9.   * injectClubRepository
    10.   *
    11.   * @param Tx_IsClubmanager_Domain_Repository_ClubRepository $clubRepository
    12.   * @return void
    13.   */
    14. public function injectClubRepository(Tx_IsClubmanager_Domain_Repository_ClubRepository $clubRepository) {
    15. $this->clubRepository = $clubRepository;
    16. }

    Oder sehe ich den Wald vor lauter Bäumen nicht mehr? Das Select soll einfach dynamisch die Daten von Lake holen.

    Hoffe Ihr könnt mir helfen :o

    Gruss Coreblade

  • MajPay MajPay
    Jedi-Meister
    0 x
    345 Beiträge
    2 Hilfreiche Beiträge
    05. 09. 2012, 17:42

    Die Models abholen passiert ja normal so:

    1. $this->view->assign('clubs',$this->clubRepository->findAll());

    Die Dependency Injection sieht richtig aus. Wenn du in dem Controller per

    1. $this->clubRepository->add($club);
    dein Repository erweiterst kannst du sie per findAll() abholen. Du solltest dieses hinterlegen/abholen/filtern immer über das Repository machen und dafür keine eigenen Array-Konstrukte oÄ verwenden. Dann bleibt das alles transparent und ein Blick in deine Extension ist wie ein Blick in jede andere Extension nur mit anderen Namen.

    Um die Daten mit der Datenbank zu synchronisieren muss die Speicherschicht passen, dazu brauchst du vieles mehr als nur das Repository, du brauchst auch viel config, T3 braucht schließlich ein Mapping von deinem Model zur Tabelle, das passiert in der ext_tables.php.

  • Coreblade Coreblade
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    06. 09. 2012, 08:39

    Hallo MajPay

    Danke für Deine Antwort.
    Innerhalb des Repository ist mir dies schon klar. Aber ich muss ja ein anderes Repository ansprechen. Ich muss das Lake Model abholen, welches im lakeRepository ist. Das Ganze muss ich vom clubController aus machen. Wenn ich aber das lakeRepository mit Dependency Injection wie das clubRepository reinhole, funktioniert das nicht... Any Idea?

    Gruss Coreblade

  • Coreblade Coreblade
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    06. 09. 2012, 09:16

    Ok kann das Ganze nocheinmal ein bisschen mehr einschränken:

    Wenn ich das lakeRepository mit der Dependency Injection (analog clubRepository) reinnehme, kann ich nur die funktion findByUid verwenden. Diese liefert die richtigen werte.
    Alles andere wie z.B. findByName oder findAll funktioniert nicht bzw. ergibt kein Ergebnis. Bin langsam am verzweifeln? #angry# Das muss doch auch schon mal jemand anders angetroffen haben?