ZF2 子路由不起作用
ZF2 Child routes doesn't work
我在博客模块中有一个简单的配置和控制器:
module.config.php:
return array(
'controllers'=>array(
'invokables'=>array(
'Blog\Controller\Blog'=>'Blog\Controller\BlogController',
),
),
'router'=>array(
'routes'=>array(
'blog'=>array(
'type'=>'literal',
'options'=>array(
'route'=>'/blog',
'defaults'=>array(
'controller'=>'Blog\Controller\Blog',
'action'=>'index',
),
),
'may_terminate'=>true,
'child_routes'=>array(
'rss'=>array(
'type'=>'literal',
'options' => array(
'route'=>'/rss',
'defaults'=>array(
'action'=>'rss',
),
),
),
)
)
)
),
);
BlogController.php:
namespace Blog\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class BlogController extends AbstractActionController
{
public function indexAction(){
return new ViewModel(array());
}
public function rssAction(){
return new ViewModel(array());
}
}
路由 /博客 工作正常,
但是 /blog/rss - 不起作用
Zend Framework 2 响应错误消息:
A 404 error occurred
Page not found.
The requested controller was unable to dispatch the request.
Controller:
Blog\Controller\Blog
No Exception available
怎么了?
提前致谢。
您没有像在其父路由中那样在“blog/rss”路由中将 may_terminate
设置为 true
。
问题出在matchedRouteName。
和child_routes
protected 'matchedRouteName' => string 'blog/rss' (length=8),
没有child_routes
protected 'matchedRouteName' => string 'blog' (length=4)
当我尝试访问时,它在我的路由处理中产生错误并重定向到 404 页面 /blog/rss。
我在博客模块中有一个简单的配置和控制器:
module.config.php:
return array(
'controllers'=>array(
'invokables'=>array(
'Blog\Controller\Blog'=>'Blog\Controller\BlogController',
),
),
'router'=>array(
'routes'=>array(
'blog'=>array(
'type'=>'literal',
'options'=>array(
'route'=>'/blog',
'defaults'=>array(
'controller'=>'Blog\Controller\Blog',
'action'=>'index',
),
),
'may_terminate'=>true,
'child_routes'=>array(
'rss'=>array(
'type'=>'literal',
'options' => array(
'route'=>'/rss',
'defaults'=>array(
'action'=>'rss',
),
),
),
)
)
)
),
);
BlogController.php:
namespace Blog\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class BlogController extends AbstractActionController
{
public function indexAction(){
return new ViewModel(array());
}
public function rssAction(){
return new ViewModel(array());
}
}
路由 /博客 工作正常,
但是 /blog/rss - 不起作用
Zend Framework 2 响应错误消息:
A 404 error occurred Page not found. The requested controller was unable to dispatch the request. Controller: Blog\Controller\Blog No Exception available
怎么了? 提前致谢。
您没有像在其父路由中那样在“blog/rss”路由中将 may_terminate
设置为 true
。
问题出在matchedRouteName。
和child_routes
protected 'matchedRouteName' => string 'blog/rss' (length=8),
没有child_routes
protected 'matchedRouteName' => string 'blog' (length=4)
当我尝试访问时,它在我的路由处理中产生错误并重定向到 404 页面 /blog/rss。