Vom Controller zum Model

  • Typo3Cuckoo Typo3Cuck...
    Sternenflotten-Admiral
    0 x
    184 Beiträge
    0 Hilfreiche Beiträge
    19. 05. 2011, 15:39

    Hi,

    wie kann ich im Controller auf Variablen des Models zugreifen?

    In der Extension sjr_offers steht in OffersController.php z.B. das hier:

    1. /**
    2.  * Renders a single offer
    3.  *
    4.  * @param Tx_SjrOffers_Domain_Model_Offer $offer The offer to be displayed
    5.  * @return string The rendered HTML string
    6.  * @dontvalidate $newContact
    7.  */
    8. public function showAction(Tx_SjrOffers_Domain_Model_Offer $offer, Tx_SjrOffers_Domain_Model_Person $newContact = NULL) {
    9. $organization = $offer->getOrganization();
    10. ...
    11. }

    Also dacht ich mir: ich bau das nach ;)

    1. /**
    2.  * List all objects
    3.  *
    4.  * @param Tx_MyExtension_Domain_Model_Object $object
    5.  * @return string The rendered HTML string
    6.  */
    7. public function listAction(Tx_MyExtension_Domain_Model_Object $object) {
    8. $date = $object->getDateStart();
    9. ...
    10. }

    Hat aber nicht so recht funktioniert, denn ich erhalte im Frontend folgende Fehlermeldung:

    1. An error occurred while trying to call Tx_MyExtension_Controller_ObjectController->listAction(). Error: Required property 'object' does not exist.

    Muss ich den Weg über das passende Repository gehen? Wie funktioniert das genau?

    Danke für hilfreiche Antworten! :)


  • 1
  • xandio xandio
    Padawan
    0 x
    40 Beiträge
    0 Hilfreiche Beiträge
    19. 05. 2011, 23:34

    Offenbar wird der listAction beim Aufruf kein Objekt übergeben.

    Etwas in dieser Art könntest Du im Controller verwenden:
    $this->redirect('list', NULL, NULL, array('object' => $object));

    Bzw. so etwas im Template:
    <f:link.action action="list" arguments="{object : object}">List all objects</f:link.action>

  • Typo3Cuckoo Typo3Cuck...
    Sternenflotten-Admiral
    0 x
    184 Beiträge
    0 Hilfreiche Beiträge
    20. 05. 2011, 10:29

    Die List-View ist meine Standardausgabe. D.h. ich hab das Plugin auf einer Seite eingefügt und wenn man die Seite aufruft erhält man die Listenansicht ohne irgend etwas anklicken zu müssen.

    Aber ich denke ich hatte beim Erstellen des Threads noch nicht verstanden wie das mit dem Zugriff auf Daten des Models funktioniert (siehe Thread "Welche Funktion in welche Klasse" -> http://www.typo3.net/forum/beitraege/extbase_und_fluid/105463/).

    Ich werde das noch mal über eine Funktion im Repository versuchen.

    Danke soweit :)

  • 1