我不知道如何为这个问题写标题。无论如何这是场景..
我有一张这样的表
人
id | username | firstname | lastname
1 | ab | Aaaa | Bbbb
2 | yz | Yyyy | Zzzz
我使用以下网址来显示个人资料:
example.com/person/profile/index?id=1 // Show person 1 profile
example.com/person/profile/index?id=1 // Show person 2 profile
此处: person
是模块,profile
是控制器,index
是用于获取和显示的操作使用参数id
以上情况正常运作。
问题:
现在,我想使用以下网址来使用用户名获取用户个人资料
example.com/person/profile/ab // Show person 1 profile
example.com/person/profile/yz // Show person 2 profile
有什么想法吗?
答案 0 :(得分:4)
如果您希望使用默认的ZF路线,只需更改example.com/person/profile/name/ab
的链接,然后通过$this->getRequest()->getParam('name')
您也可以制作特定路线,您可以在此处找到文档:http://framework.zend.com/manual/en/zend.controller.router.html
此外,您可以使用资源配置自定义路径,例如
resources.router.routes.profile.route = "/person/profile/:name"
resources.router.routes.profile.defaults.controller = "person"
resources.router.routes.profile.defaults.action = "profile"
resources.router.routes.profile.reqs[] = "name"
答案 1 :(得分:1)
默认情况下,您无需执行任何操作。只需将/name/THENAME
添加到网址的最后一个。
然后,
获取名称的值
$name = $this -> _request -> getParam('name');
使用该值从数据库中提取id