您好所有的zend 编码员。我是 zend 的新手,通过 DB 为管理页面做代码。我想对这些页面使用 URL,如下所示:
www.domainname.com/about-us
www.domainname.com/contact-us ...
表名是 'cms_page' & 属性是:
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`page_key` varchar(255) NOT NULL,
`content` longtext NOT NULL,
`added_on` datetime NOT NULL,
我已经为此做了研发,这里是代码:
// 在 module.config.php 中 '导航' => 数组( '默认' => 数组( '帐户' => 数组( '标签' => '帐户', '路线' => '节点', '参数' => 数组( 'id' => '2', ), '页面' => 数组( '家' => 数组( '标签' => '仪表板', '路线' => '节点', '参数' => 数组( 'id' => '1', '链接' => '/测试' ), ), '登录' => 数组( '标签' => '登录', '路线' => '节点', '参数' => 数组( 'id' => '5', '链接' => '/关于我们' ), ), '注销' => 数组( '标签' => '退出', '路线' => '节点', '参数' => 数组( 'id' => '3', ), ), ), ), ), ), '路由器' => 数组( '路线' => 数组( '家' => 数组( '类型' => 'Zend\Mvc\Router\Http\Literal', '选项' => 数组( '路线' => '/', '默认值' => 数组( '控制器' => '应用程序\控制器\索引', '动作' => '索引', ), ), ), '节点' => 数组( '类型' => '应用\路由器\别名', '选项' => 数组( '路由' => '/node[/:id]', '约束' => 数组( 'id' => '[0-9]+' ), '默认值' => 数组( '__NAMESPACE__' => '应用程序\控制器', '控制器' => '索引', '动作' => '索引', 'id' => '0' ), ), 'may_terminate' => 真, ), ), ),
// 在 Module.php 中 公共函数 onBootstrap(MvcEvent $e) { $app = $e->getApplication(); $sm = $app->getServiceManager(); $sm->get('翻译器'); $sm->get('viewhelpermanager')->setFactory('controllerName', function($sm) use ($e) { $viewHelper = 新视图\Helper\ControllerName($e->getRouteMatch()); 返回 $viewHelper; }); $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $sm->setFactory('Navigation', 'Zend\Navigation\Service\DefaultNavigationFactory', true); $alias = $sm->get('Application\Router\Alias'); $nav = $sm->get('导航'); $alias->setNavigation($nav); } 公共函数 getServiceConfig() { 返回数组( '工厂' => 数组( '应用\路由器\别名' => 函数($sm){ $alias = new \Application\Router\Alias('/node[/:id]'); 返回$别名; }, ) ); }
// 应用程序\src\应用程序\路由器 命名空间应用\路由器; 使用可遍历; 使用 Zend\Mvc\Router\Exception; 使用 Zend\Stdlib\ArrayUtils; 使用 Zend\Stdlib\RequestInterface 作为请求; 使用 Zend\Mvc\Router\Http; 使用 Zend\Mvc\Router\Http\Segment 作为 Segment; 类别名扩展段 { 私人静态 $_navigation = null; 公共函数匹配(请求 $request,$pathOffset = null) { $uri = $request->getUri(); $path = $uri->getPath(); $items = self::$_navigation->findAllBy('route', 'node'); $参数=空; if($items != null){ $t = sizeof($items); for ($i=0; $i getParams(); if (isset($params['link']) && $params['link']==$path){ echo $uri->setPath('/'.$item->getRoute().'/'.$params['id']); $request->setUri($uri); 休息; } } } 返回父级::match($request, $pathOffset); } 公共函数 setNavigation($navigation){ 自我::$_navigation = $导航; } 受保护的函数 buildPath(array $parts, array $mergedParams, $isOptional, $hasChild, array $options) { if(isset($mergedParams['link'])){ 返回 $mergedParams['link']; } return parent::buildPath($parts, $mergedParams, $isOptional, $hasChild, $options = array()); } }
当我在浏览器上运行此 url www.domainname.com/about-us 时出现 404 错误。请帮助我哪里错了,需要添加或编辑哪些代码?