来自数据库的ZF3动态路由

时间:2017-10-16 12:13:37

标签: zend-framework3

我怎样才能从数据库创建动态路由。 我使用自定义路由器,但是,我无法将doctrinaire与我的自定义路由器集成。 主要困难是,Factory无法连接自定义路由类。 有谁知道如何在ZF3中将路由与数据库连接?

1 个答案:

答案 0 :(得分:0)

您需要分段路线,例如

'blogpost' => [
            'type' => Segment::class,
            'options' => [
                'route' => '/novost/:id',
                'defaults' => [
                    'controller' => Controller\IndexController::class,
                    'action' => 'blogPost',
                ],
            ],
        ],

通知

  

:ID

id是路径中的动态变量

你可以像

那样在行动中进行检索
   $id = $this->params()->fromRoute('id');

这样您就可以从db获取此路由的数据并将其提供给ViewModel。例如:

$post = $this->model->getBlogPost($id);

$vm = new ViewModel(['post' => $post]);
return $vm;

注意,您也可以在路线中使用括号选择变量 - > [/:可变]

与url helper建立链接时,不要忘记变量。

$this->url('blogpost',['id'=>$someid]);

更多信息:https://docs.zendframework.com/tutorials/in-depth-guide/understanding-routing/#segment-routes