我在我的一個Zend Framework 3應用程序中遇到以下問題。我有兩個不同的模塊具有相同的控制器名稱。錯誤的控制器被加載
Module1\Controller\StartController
Module2\Controller\StartController
在這兩種module.config.php文件,我有這樣的路由器配置:
'router' => [ 'routes' => [ 'module1' => [ 'type' => Segment::class, 'options' => [ 'route' => '/module1[/:controller[/:action[/:id]]]', 'constraints' => [ 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+' ], 'defaults' => [ 'controller' => Controller\StartController::class, 'action' => 'index', ], ], ], ], // ROUTES END HERE ],
現在我的問題是,單詞數\控制器\ StartController被加載時,我請致電/module1/start。我認爲這是因爲第二個模塊的別名稍後定義並覆蓋第一個條目。是否有可能在此數組的默認部分中定義默認命名空間? 或者什麼是我的問題的正確解決方案?
更新: 我現在添加了兩個配置文件到phpfiddle。你可以在這裏找到他們: http://main.xfiddle.com/ac5762d7/module1.txt http://main.xfiddle.com/ac5762d7/module2.txt
我現在面臨的問題是「車庫」。
您是否已經在module.config.php之上定義了名稱空間(例如,命名空間模塊1;)嘗試'控制器'=> \ Module1 \ Controller \ StartController :: class –
是的,我做到了。我認爲問題不在代碼的這一部分,而是與別名或工廠。他們似乎是某種全球性的。 –