Existe uma maneira genérica para URLs de rota em Kohana quando há o hífen neles?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Kohana configura automaticamente URLs gosta assim

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

Agora, eu gosto de usar o traço para separar as minhas palavras na URL, e eu tenho um endereço como assim

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

O meu controlador é intitulado BusinessHub_Controller. O que é me irritante, é para / business-hub / para coincidir com o controlador BusinesHub, eu preciso adicionar uma entrada personalizada no routes.php sob a aplicação de configuração da pasta /. Parece também tenho de acrescentar um para todas método, que é realmente irritante. Por exemplo, aqui está um trecho,

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

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

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

Obviamente, isso é realmente irritante. Existe uma maneira que eu posso dizer Kohana para converter a URL para o nome camelCase, algo como

$urlController = 'business-hub';

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

$correctController = ucwords($correctController);

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

$correctController = $correctController . '_Controller';
Foi útil?

Solução

Ao invés de apenas eliminasse traços, eu convertê-los para sublinhados; e eu fazê-lo usando um gancho. Certifique-se os ganchos estão habilitados no config / config.php e, em seguida, criar um arquivo em ganchos chamado, digamos, 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');

Outras dicas

Para a variante camelCase eu não sei, mas algo como isso deve funcionar

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

Como a parte rota em kohana é uma expressão regular.

Claro que isto é severamente limitada aos casos previstos por você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top