【发布时间】:2015-08-24 19:00:26
【问题描述】:
您好,我目前正在玩 PHP MVC 编程,想知道是否有人使用数据库进行了某种“路由”?
我有一个如下所示的“页面”表:http://i.imgur.com/xS1OvjW.png
目前所有的路线都是硬编码的,我想一定可以用数据库来做..
但我不仅要获取页面并显示它,还需要能够使用它发送参数。
示例: 如我的页表所示,我有一个“测试”网址。如果我输入http://demo.com/test/ 我会“重新路由”以使用“home”控制器和“Index”方法。但我还需要能够输入 http://demo.com/test/id/40 并且 id/40 将作为参数发送到控制器/方法。
如果这不是一件好事,或者如果有人有更好的解决方案,请告诉我! :)
问候, 弗雷德里克
【问题讨论】:
-
这样的事情通常在较低级别完成,同时在 http 服务器内部重写传入请求。所以在调用php之前。对于重写步骤,有基于数据库的解决方案。但这一切都是值得怀疑的。由于无论如何都必须对所有控制器和动作进行编码,并且调用签名无论如何都必须与动作签名匹配,因此这种方法通常没有什么优势。为什么要以这种动态方式更改路由?诸如“测试”和“内部”之类的东西是典型的临时示例。但是这些可以很容易地通过临时重写规则来实现。
-
我不会围绕任何数据库构建 MVC 框架。相反,使用 Laravel 之类的框架并创建解析 URL 并加载相关文件/控制器/视图/任何内容的代码。您仍然可以使用数据库来保存您的路线,但它将与框架分离。
标签: php model-view-controller routing