turk porno porno escort rokettube
Ergebnis 1 bis 2 von 2

Thema: Routing mit Controller/Action

  1. #1
    Erfahrener Benutzer
    Registriert seit
    05.09.2008
    Beiträge
    321
    Thanks
    0
    Thanked 3 Times in 1 Post

    Standard Routing mit Controller/Action

    Ich arbeite mich gerade in das ZF3 ein. Dabei habe ich gerade eine Fragestellung beim Routing, die ich nicht gelöst bekomme.

    Folgendes hat mit ZF2 funktioniert:
    PHP-Code:
    // module.config.php
    return array(
    'controllers' => array('factories' => array('Admin\Controller\Config'         => 'Admin\Controller\ConfigControllerFactory',
                                                              
    'Admin\Controller\User'           => 'Admin\Controller\UserControllerFactory',
                                                              
    'Admin\Controller\Index'         => 'Admin\Controller\IndexControllerFactory')),
        
    'router' => array(
          
    'routes' => array(
            
    'admin' => array(
              
    'type' => 'Literal',
              
    'options' => array(
                
    'route' => '/admin',
                
    'defaults' => array(
                  
    '__NAMESPACE__' => 'Admin\Controller',
                  
    'controller'    => 'Index',
                  
    'action'        => 'index',
                ),
              ),
              
    'may_terminate' => true,
              
    'child_routes' => array(
                
    'default' => array(
                  
    'type' => 'Segment',
                  
    'options' => array(
                    
    'route' => '/[:controller[/:action][/:id]]',
                    
    'constraints' => array(
                      
    'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                      
    'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                      
    'id'         => '[0-9-]{1,}',
                    ),
                    
    'defaults' => array(
                    ),
                  ),
                ),
              ),
            ),
       ),
    ); 
    Mit dieser Konfiguration konnte ich dynamisch verschiedene Controller-Aktionen aufrufen, ohne eine extra Route pro Controller zu erstellen.
    Folgende Urls waren möglich: /admin/config/index, /admin/index/index bzw. /admin/user/index


    Wie sieht sowas im ZF3 aus? Ich kann dynamisch eine Aktion vom IndexController aufrufen, aber nicht verschiedene Controller.
    PHP-Code:
    // controllers.config.php
        
    return [
            
    'controllers' => [
                
    'factories' => [
                    
    IndexController::class => IndexControllerFactory::class,
                ],
            ],
        ];

    // router.config.php
        
    return [
            
    'router' => [
                
    'routes' => [
                    
    'application' => [
                        
    'type' => Literal::class,
                        
    'options' => [
                            
    'route'    => '/application',
                            
    'defaults' => [
                                
    'controller'    => IndexController::class,
                                
    'action'        => 'index',
                            ],
                        ],
                        
    'may_terminate' => true,
                        
    'child_routes' => [
                            
    'default' => [
                                
    'type' => Segment::class,
                                
    'options' => [
                                    
    'route' => '[/:action]',
                                    
    'defaults' => [
                                        
    'action' => 'index',
                                    ],
                                    
    'constraints' => [
                                        
    'action'        => '[a-zA-Z][a-zA-Z0-9_-]*'
                                    
    ],
                                ],
                            ],    
                        ],
                    ],
                ],
            ],
        ]; 
    Wie kann ich verschiedene Controller-Aktionen aufrufen?

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von rainman1983 Beitrag anzeigen
    PHP-Code:
    'route' => '[/:action]' 
    Der Teil ergibt irgendwie keinen Sinn.
    Die Klammer weist auf einen optionalen Parameter hin, aber wenn dieser Parameter nicht vorhanden ist, dann wird vorherige (Eltern-)Route „application“ verwendet.

    Nimm mal deine alte Konfiguration und hau „__NAMESPACE__“ weg, ersetze den Kontroller-Name mit dem Klassennamen und passe die Fabriknamen in „controllers“ an. Angaben mit echten Klassennamen („::class“) vermeiden Schreibfehler und somit falsche Angaben.
    Im Grunde unterscheidet sich die Konfiguration der Routen nicht von Version 2. Man verwendet nur eben die echten Klassennamen, seitdem dies mit Version 5.5 von PHP unterstützt wird.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

Ähnliche Themen

  1. Mit Route nur controller und action behandeln
    Von copy im Forum Einsteigerfragen
    Antworten: 5
    Letzter Beitrag: 01.10.2010, 16:22
  2. Routing - Invalid controller specified?
    Von wbraun im Forum Einsteigerfragen
    Antworten: 2
    Letzter Beitrag: 06.10.2009, 16:18
  3. Antworten: 3
    Letzter Beitrag: 01.06.2009, 21:35
  4. Antworten: 6
    Letzter Beitrag: 02.08.2008, 00:52
  5. Antworten: 9
    Letzter Beitrag: 20.12.2007, 11:57

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •