¿Hay una forma genérica de enrutar las URL en Kohana cuando hay un guión en ellas?

StackOverflow https://stackoverflow.com/questions/1004716

  •  05-07-2019
  •  | 
  •  

Pregunta

Kohana configura automáticamente las URL como tal

http://www.example.com/controller/method/argument1 / argument2 / etc

Ahora me gusta usar el guión para separar mis palabras en la URL, y tengo una dirección como esta

http://www.example.com/business-hub

Mi controlador se titula BusinessHub_Controller. Lo que me molesta, es que / business-hub / coincida con el controlador BusinesHub, necesito agregar una entrada personalizada en route.php debajo de la carpeta application / config. También parece que tengo que agregar uno para el método cada , lo cual es realmente molesto. Por ejemplo, aquí hay un extracto,

$config['business-hub'] = 'businesshub/index/';

$config['business-hub/logout'] = 'businesshub/logout';

$config['business-hub/media-releases'] = 'businesshub/mediareleases';

Obviamente, esto es realmente molesto. De todos modos, puedo decirle a Kohana que convierta la URL al nombre de camelCase, algo así como

$urlController = 'business-hub';

$correctController = str_replace('-', ' ', $urlController);

$correctController = ucwords($correctController);

$correctController = str_replace(' ', null, $correctController);

$correctController = $correctController . '_Controller';
¿Fue útil?

Solución

En lugar de eliminar los guiones, los convertiría a guiones bajos; y lo haría con un gancho. Asegúrese de que los enlaces estén habilitados en config / config.php y luego cree un archivo en enlaces llamado, por ejemplo, dashes_to_underscores.php:

function convert_dashes_to_underscores_in_url()
{
    Router::$current_uri = str_replace('-', '_', Router::$current_uri);
}

Event::add_before(
    'system.routing',
    array('Router', 'setup'),
    'convert_dashes_to_underscores_in_url');

Otros consejos

Para la variante camelCase, no sé, pero algo como esto debería funcionar

$config['(a-z)+-?(a-z)*/(a-z)+-?(a-z)*'] = '$1$2/$3$4';

Como la parte de la ruta en kohana es una expresión regular.

Por supuesto, esto está muy limitado a los casos proporcionados por usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top