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