ThinkPHP - Resolución de enrutamiento

Código de actividad:

pública  función storeEntry () 
{ 
    $ this -> pantalla ( 'store_entry' ); 
}

Visita el enlace: http: //lanse1993.com/store/store_entry

 

[Problema] serán store_entry.html contenido en la renderización de páginas, pero el método storeEntry no se llama, el código fuente subyacente de seguimiento tp:

Dispatcher.class.php

/ * * 
     * Obtener el nombre de la operación real 
     * / 
    privada  estática  función de la getAction ( $ var , $ urlCase = C ( 'URL_CASE_INSENSITIVE' )) 
    { 
        $ Acción =! Vacío ( $ _POST [ $ var ])? $ _POST [ $ var ] : (! empty ( $ _GET [ $ var ?]) $ _GET [ $ var ]: C ( 'default_action' ));
         unset ( $ _POST [ $ var ], $ _GET [ $ var]);
         IF ( $ Mapas = C ( 'URL_ACTION_MAP' )) {
             IF ( isset ( $ Mapas [ strtolower (CONTROLLER_NAME)])) {
                 $ Mapas = $ Mapas [ strtolower (CONTROLLER_NAME)];
                 IF ( isset ( $ Mapas [ strtolower ( $ Acción )])) {
                     // registrar los alias actuales 
                    DEFINE ( 'ACTION_ALIAS', strtolower ( $ Acción ));
                     // obtener el nombre funcionamiento real
                    si ( is_array ( $ mapas [ACTION_ALIAS])) {
                         parse_str ( mapas de $ [ACTION_ALIAS] [1], $ vars );
                        $ _GET = array_merge ( $ _GET , $ vars );
                        devolver  $ mapas [ACTION_ALIAS] [0 ]; 
                    } Demás {
                         retorno  $ mapas [ACTION_ALIAS]; 
                    } 
                } Elseif ( array_search ( strtolower( $ Action ), $ mapas )) {
                     // 禁止访问原始操作
                    retorno '' ; 
                } 
            } 
        } 
        Si (C ( 'ACTION_NAME_STYLE', nula , 1) == 0 ) {
             $ action = $ urlCase ? strtolower ( $ action ): $ action ; 
        } Demás {
             $ action = $ urlCase ? lcfirst (parse_name ( strtolower ( $ action ), 1)): lcfirst (parse_name ( $ acción, 1 )); 
        } 
        Devolver  strip_tags ( $ acción ); 
    }

 

Controller.class.php

/ * * 
     * Método mágico con una operación realizada cuando la ausencia 
     * públicos @access 
     * @param $ cadena del nombre del método Método 
     * @param array $ args parámetro 
     * @return mixto 
     * / 
    público en  función de la __call ( $ Método , $ args ) 
    { 
        SI (0 === strcasecmp ( $ Método , ACTION_NAME C ( 'ACTION_SUFFIX'. ))) {
             IF ( method_exists ( $ del este , '_empty' )) {
                 // si se invoca la operación _empty definido 
                $ al este -> _ vaciar ( $ método, , $ args );
            } ELSEIF (file_exists_case ( $ del este -> Ver-> parseTemplate ())) {
                 // cheque si hay plantilla predeterminada si una plantilla es directamente salida de 
                $ del este -> la pantalla (); 
            } else { 
                APP_DEBUG == false send_http_status && (404 ) ; 
                E (L ( '_ERROR_ACTION_') ':' .. ACTION_NAME); 
            } 
        } else { 
            APP_DEBUG == false && send_http_status (404 ); 
            E ( __CLASS__ .. ':' $ Método. L ( '_ METHOD_NOT_EXIST_' ));
            volver ; 
        } 
    }

 

configuración

'ACTION_NAME_STYLE' => 0,             // método de petición no maneja estilo 0 No 1 está dispuesto joroba 
'URL_CASE_INSENSITIVE' => verdadero ,            // defecto falso a verdadero, dicha URL es sensible a mayúsculas mayúsculas y minúsculas

 

Análisis: enrutamiento analítica no maneja (no convertido joroba) y no es sensible a mayúsculas, que el nombre real de la operación después de que store_entry y Store_entry determinación todo store_entry; por supuesto, este método no existe en el controlador, y un conjunto de la clase padre Controller __call el método mágico, comprobar la presencia de la store_entry.html plantilla por defecto, por lo plantillas de salida de representación directa

 

Supongo que te gusta

Origin www.cnblogs.com/lanse1993/p/12518879.html
Recomendado
Clasificación