Ich bin neu in Zend Framework 3 und versuchte, die Routen zu übersetzen, und ich habe teilweise erfolgreich.Ich bin in der Lage, die Hauptroute zu übersetzen und es an den gewünschten Ort, sondern für child routet die Übersetzung, die Umleitung jedoch nicht. kannst du mir bitte helfen, mein Code ist unten.Zend Framework nicht in der Lage, die übersetzten Kind Routen zu routen
module.config.php
'router' => [
'router_class' => TranslatorAwareTreeRouteStack::class,
'routes' => [
'setting' => [
'type' => Segment::class,
'options' => [
'route' => '/{locale}/{setting}',
'defaults' => [
'locale' => 'de',
'controller' => Controller\SettingController::class,
'action' => 'index',
],
],
'may_terminate'=>true,
'child_routes' =>[
'add' =>[
'type' =>'Segment',
'options' =>[
'route' =>'/{add}',
'defaults'=> [
'controller' => Controller\SettingController::class,
'action' => 'add',
],
],
],
],
],
],
],
module.php
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
$language_session = new Container('language');
if(!$language_session->offsetExists('lang')){
$language = 'de_DE';
} else{
$language = $language_session->lang.'_'.strtoupper($language_session->lang);
}
$translator = $e->getApplication()->getServiceManager()->get('translator');
$translator->setLocale($language);
$translator->addTranslationFile('phparray', __DIR__.'/language/'.$language.'.php', 'default',$language);
$app = $e->getTarget();
$app->getEventManager()->attach('route', array($this, 'onPreRoute'), 100);
}
public function onPreRoute($e)
{
$app = $e->getTarget();
$serviceManager = $app->getServiceManager();
$serviceManager->get('router')->setTranslator($serviceManager->get('translator'));
}
Und meine Sprachdatei de_De.php
return array(
'locale' => 'de',
'setting' => 'Einstellung',
'add' => 'hinzufügen',
);
Wie pro meine obigen Code i bin in der Lage zu umleiten zu Settings Controller mit der Route "language.devgrafioffshore.com/de/Einstellung "
aber nicht in der Lage zu language.devgrafioffshore.com/de/Einstellung/hinzufügen zu umleiten, die mich Aktion hinzuzufügen umleiten sollte, aber ich bekommen
Die angeforderte URL nicht durch das Routing angepasst werden könnten.
Vielen Dank im Voraus. Tschüss!
Laut Dokumentation und was wir auf SO (einige Code sind genau das gleiche) finden, scheint es OK. Hast du herausgefunden, was falsch war, seit du diese Frage gestellt hast? –
@AlFonce ja ich fand eine sache, die "hinzufügt" nicht funktioniert aber "hinzufugen" funktioniert und wenn du einen besseren weg gefunden hast die url übersetzung zu lösen als lass mich es wissen. Vielen Dank!! – khukuri