Tôi mới tham gia khung công tác Zend 3 và đang cố dịch các tuyến đường và tôi đã thành công một phần. Tôi có thể dịch tuyến đường chính và chuyển hướng đến vị trí được yêu cầu nhưng con đường dịch các công trình nhưng chuyển hướng không. bạn có thể vui lòng giúp tôi, mã của tôi là dưới đây.Zend framework không thể định tuyến các tuyến con đã dịch
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'));
}
Và tập tin ngôn ngữ của tôi de_De.php
return array(
'locale' => 'de',
'setting' => 'Einstellung',
'add' => 'hinzufügen',
);
Theo mã trên tôi i am có thể chuyển hướng đến Trình điều khiển cài đặt với tuyến đường "language.devgrafioffshore.com/de/Einstellung "
Nhưng không thể chuyển hướng đến language.devgrafioffshore.com/de/Einstellung/hinzufügen mà nên chuyển hướng tôi để thêm hành động nhưng tôi nhận được
URL được yêu cầu không thể được xuất hiện bằng cách định tuyến.
Cảm ơn bạn trước. Tạm biệt!
Theo tài liệu và những gì chúng tôi có thể tìm thấy trên SO (một số mã giống hệt nhau), Có vẻ như OK. Bạn đã tìm thấy những gì đã sai kể từ khi bạn đăng câu hỏi này? –
@AlFonce vâng tôi tìm thấy một điều mà "hinzufügen" không hoạt động nhưng "hinzufugen" hoạt động và nếu bạn đã tìm thấy cách tốt hơn để giải quyết bản dịch url hơn hãy cho tôi biết. Cảm ơn!! – khukuri