Intereting Posts
Заново установите флажок, если он не прошел проверку в форме редактирования в Codeigniter Помогите разобрать XML на PHP по значению атрибута system () отключено сообщение об ошибке Вставьте один или несколько наборов полей в базу данных с помощью динамической формы Как добавить пользовательский атрибут в zend framework 2 с помощью zend из введите неизвестное количество полей в mysql – лучшая структура для этого? Ошибки установки PHP на Centos6 Изменение содержимого div при нажатии на ссылку / кнопку PHP file_exists с акцентом возвращает false Конвертировать * (mp3, m4p и т.п.) в OGG через командную строку для совместимости с HTML5 Вставьте несколько строк с тем же уникальным идентификатором fseek () по строке, а не байтам? Как получить доступ к атрибутам элемента с помощью SimpleXml? получить ответ сервера без использования setinterval для chat applaton php jquery Сократите URL, удалив пустые переменные GET и упростив имена переменных

zend framework 2 + база данных маршрутизации

У меня проблема с zend framework 2 Я хочу создать базу данных маршрутизации, например

/hello/index => is Application/Controllers/HomeController /CustomURL => is Application/Controllers/HomeController 

CustomUrl i из базы данных я здесь, это мой файл конфигурации

  /// module.config.php 'router' => array( 'routes' => array( ..... 'node' => array( 'type' => 'Application\Router\Page',//src/Application/Router/Page.php 'options' => array( 'route' => '/node', 'defaults' => array( 'controller' => 'Application\Controller\Index', 'action' => 'index', ), ), ), ), ),.... 

вот мой класс Router

 namespace Application\Router; use Zend\Mvc\Router\Exception; use Zend\Stdlib\ArrayUtils; use Zend\Stdlib\RequestInterface as Request; use Zend\Mvc\Router\Http; use Zend\Mvc\Router\Http\Literal; class Page extends Literal { protected $routePluginManager = null; protected $defaults = array(); public function match(Request $request, $pathOffset = null) { $uri = $request->getUri(); $path = $uri->getPath(); //sample logic here //for /about/gallery uri set node id to 1 //todo: get action, controller and module from navigation if($path == '/node'){ $uri->setPath('/node/1'); $request->setUri($uri); } return parent::match($request, $pathOffset); } protected function buildPath(array $parts, array $mergedParams, $isOptional, $hasChild) { if(isset($mergedParams['link'])) { return $mergedParams['link']; } return parent::buildPath($parts, $mergedParams, $isOptional, $hasChild); } } 

im very noob, и мне нужна помощь, чтобы сделать эту часть спасибо

* update * Я хочу, чтобы некоторые из них стали учебными пособиями для маршрутизации, основанной на базе данных, в Zend Framework?

Related of "zend framework 2 + база данных маршрутизации"

Мой маршрутизатор выглядит так:

 class Content implements RouteInterface,ServiceLocatorAwareInterface { protected $defaults = array(); protected $routerPluginManager = null; public function __construct(array $defaults = array()) { $this->defaults = $defaults; } public function setServiceLocator(ServiceLocatorInterface $routerPluginManager) { $this->routerPluginManager = $routerPluginManager; } public function getServiceLocator() { return $this->routerPluginManager; } public static function factory($options = array()) { if ($options instanceof \Traversable) { $options = ArrayUtils::iteratorToArray($options); } elseif (! is_array($options)) { throw new InvalidArgumentException(__METHOD__ . ' expects an array or Traversable set of options'); } if (! isset($options['defaults'])) { $options['defaults'] = array(); } return new static($options['defaults']); } public function match(Request $request,$pathOffset = null) { if (! method_exists($request,'getUri')) { return null; } $uri = $request->getUri(); $fullPath = $uri->getPath(); $path = substr($fullPath,$pathOffset); $alias = trim($path,'/'); $options = $this->defaults; $options = array_merge($options,array( 'path' => $alias )); return new RouteMatch($options); } public function assemble(array $params = array(),array $options = array()) { if (array_key_exists('path',$params)) { return '/' . $params['path']; } return '/'; } public function getAssembledParams() { return array(); } 

}

Я называю это так:

 'router' => array( 'routes' => array( 'content' => array( 'type' => 'Module\Router\Content', 'options' => array( 'defaults' => array( 'controller' => 'Module\Controller\Content', 'action' => 'view' ) ) ) ) ), 

В viewAction () в контроллере вы можете поместить все, что хотите. Надеюсь, это поможет.

(Я взял это решение у кого-то, но я больше не могу вспомнить источник. :()