CakePHP 3.x: Todas las rutas al complemento -- akephp campo con cakephp-3.0 campo con cakephp-routing camp Relacionados El problema

CakePHP 3.x: all routes to the plugin


3
vote

problema

Español

Esta no es una pregunta real, necesito una confirmación para saber si entiendo lo que estoy estudiando (las rutas de CakePHP).

Tengo el complemento button5 . De forma predeterminada, todas las solicitudes deben dirigirse al complemento, por lo que deseo que el nombre del complemento no aparezca en la URL.

Por ejemplo:

  button6  

debe resolverse como:

  button7  

Lo mismo debe aplicarse al prefijo "Admin".

Por ejemplo:

  button8  

debe resolverse como:

  button9  

En resumen, debe imaginar que la solicitud (por lo tanto, excepto Datagridview0 ) no tiene un controlador.

He estudiado rutas (especialmente este y este ) y ahora me gustaría saber si este código es correcto:

  Datagridview1  

de mis pruebas, esto parece funcionar. Pero como las rutas han cambiado mucho en comparación con CAKEPHP 2.x, me gustaría tener una confirmación que ha entendido.

gracias.


editar

Gracias a PGBI, este código debería ser final:

  Datagridview2  
Original en ingles

This is not a real question, I need a confirmation to know if I understand what I'm studying (the routes of CakePHP).

I have the plugin MyPlugin. By default, all requests should be directed to the plugin, so I wish that the plugin name doesn't appear in the url.

For example:

/pages 

should be resolved as:

['controller' => 'pages', 'action' => 'index', 'plugin' => 'MyPlugin'] 

The same should apply to the "admin" prefix.

For example:

/admin/pages 

should be resolved as:

['controller' => 'pages', 'action' => 'index', 'plugin' => 'MyPlugin', 'prefix' => 'admin'] 

In short, you have to imagine as if the application (so except for MyPlugin) has no controller.

I studied routes (particularly this and this) and now I would like to know if this code is correct:

Router::defaultRouteClass('InflectedRoute');  Router::prefix('admin', function ($routes) {     $routes->plugin('MeCms', ['path' => '/'], function ($routes) {         $routes->fallbacks();     }); });  Router::scope('/', ['plugin' => 'MeCms'], function ($routes) {       $routes->fallbacks(); }); 

From my tests, this seems to work. But since the routes have changed a lot compared to CakePHP 2.x, I would like to have confirmation that you have understood.

Thanks.


EDIT

Thanks to PGBI, this code should be final:

Router::scope('/', ['plugin' => 'MeCms'], function ($routes) {     Router::connect('/admin', ['controller' => 'Pages', 'action' => 'index', 'plugin' => 'MeCms', 'prefix' => 'admin']);      $routes->prefix('admin', function ($routes) {         $routes->fallbacks();     });     $routes->fallbacks(); }); 
        

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

sí, eso es correcto. Creo que podrías hacer más cortas (para ser probado, pero obtienes la idea):

  Router::scope('/', ['plugin' => 'MeCms'], function ($routes) {       $routes->prefix('admin', function ($routes) {         $routes->fallbacks();     });     $routes->fallbacks(); });   

Editar: Para agregar una página de inicio a su sección de administración:

  Router::scope('/', ['plugin' => 'MeCms'], function ($routes) {       $routes->prefix('admin', function ($routes) {         $routes->connect('/', ['controller' => 'Pages', 'action' => 'index']);         $routes->fallbacks();     });     $routes->fallbacks(); });   

No es necesario repetir ['plugin' => 'MeCms'] o ["prefix" => "admin"] ya que ya está definido anteriormente.

 

Yes that's correct. I think you could do shorter (to be tested, but you get the idea):

Router::scope('/', ['plugin' => 'MeCms'], function ($routes) {       $routes->prefix('admin', function ($routes) {         $routes->fallbacks();     });     $routes->fallbacks(); }); 

EDIT: To add a homepage to your admin section :

Router::scope('/', ['plugin' => 'MeCms'], function ($routes) {       $routes->prefix('admin', function ($routes) {         $routes->connect('/', ['controller' => 'Pages', 'action' => 'index']);         $routes->fallbacks();     });     $routes->fallbacks(); }); 

You don't need to repeat ['plugin' => 'MeCms'] or ["prefix" => "admin"] since it's already defined before.

 
 
 
 

Relacionados problema

1  ¿Cómo redefinir la generación de URL sin cambios en el enlace HTMLHELPER # (...) Llama a CakePHP?  ( How to redefine the urls generation without changes at the htmlhelperlink ) 
Tengo un sitio web de CAKEPHP con muchos enlaces internos, que se crean con el HtmlHelper : /app/view/mycontroller/myaction.ctp <?php echo $this->Html...

0  Argumento de enrutador PHP simple pasando a las vistas  ( Plain php router argument passing to views ) 
Estoy creando un enrutador básico en PHP, no hay mucho material en línea sobre cómo escribir el enrutador PHP simple. Así que abajo es mi implementación actua...

3  CORS PREFLIVE El canal no tuvo éxito. Solo en Firefox. Chrome funciona bien  ( Cors preflight channel did not succeed only in firefox chrome works fine ) 
Así que tengo un problema inusual que no estoy seguro de cómo ir sobre la depuración. Tengo una aplicación angular 4 que utiliza CakePHP en el lado del servid...

0  Listado de ciudades no en la base de datos en CakePHP  ( Listing cities not in database in cakephp ) 
Tengo una solicitud en CakePHP que enumera las empresas. Tengo un modelo / controlador de negocios, así como un modelo / controlador estatal. Sin embargo, qui...

0  Acceso CakePHP denegado  ( Cakephp access denied ) 
en CakePHP Tengo esta configuración: //Config/routes.php Router::connect('/viewServices', array('plugin' => 'usermgmt', 'controller' => 'services', 'action...

0  CakePHP no redirige correctamente  ( Cakephp doesnt redirect properly ) 
Acabo de terminar el tutorial de introducción ( http: // libro. cakphp.org/2.0/en/getting-started.html ) y ponga mis archivos en un servidor Apache, que tiene...

1  Controlador de enrutamiento de CakePHP alias  ( Cakephp routing controller alias ) 
Estoy tratando de hacer lo mismo que este sitio, StackOverflow, hacer con sus URL. CakePHP funciona así: sitio web / controlador / acción / Quiero configu...

0  El enrutador CakePHP no funciona en la clase PHP  ( Cakephp router not working in php class ) 
Estoy usando CakePHP 3.x +. He creado una clase de biblioteca para descargar videos de YouTube usando youtube-dl y devolver la URL local del archivo. a...

2  CakePhp 3 Enrutamiento: Cómo enrutar la base del controlador  ( Cakephp 3 routing how to route controller basis ) 
Estoy usando CAKEPHP 3. Quiero ocultar frontends Controlador en URL. MIS RUTAS CONFIGURAR: Router::connect('/:action', array('controller' => 'frontends...

0  ¿Cómo puedo forzar todas las solicitudes de URI a index.php?  ( How can i force all uri requests to index php ) 
En mi index.php (que está en el directorio de la raíz del proyecto) Tengo un sistema de enrutamiento básico que agarra la URL (usando $_SERVER[‘REQUEST_URI...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos