Php 以不同的方式在URL中发送参数?

Php 以不同的方式在URL中发送参数?,php,zend-framework,module,routing,Php,Zend Framework,Module,Routing,我不知道如何写这个问题的标题。不管怎么说,情况就是这样 我有一张这样的桌子 人 id | username | firstname | lastname 1 | ab | Aaaa | Bbbb 2 | yz | Yyyy | Zzzz 我使用以下URL显示个人资料: example.com/person/profile/index?id=1 // Show person 1 profile example.com/person/

我不知道如何写这个问题的标题。不管怎么说,情况就是这样

我有一张这样的桌子

id | username | firstname | lastname
 1 |    ab    |     Aaaa  |    Bbbb
 2 |    yz    |     Yyyy  |    Zzzz
我使用以下URL显示个人资料:

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
获取和显示用户配置文件的操作

上述场景运行良好

问题:

现在我想使用以下URL来获取使用用户名的用户配置文件

example.com/person/profile/ab   // Show person 1 profile
example.com/person/profile/yz   // Show person 2 profile

有什么想法吗?

如果您想使用默认的ZF路线停留,只需将链接更改为
example.com/person/profile/name/ab
,并使用
$this->getRequest()->getParam('name')从您的控制器访问name即可。

此外,您还可以制定具体路线,您可以在此处找到文档:

此外,您还可以使用以下资源配置自定义路由文件:

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"

如果您想使用默认的ZF路由停留,只需将链接更改为
example.com/person/profile/name/ab
,并使用
$this->getRequest()->getParam('name')从您的控制器访问name即可。

此外,您还可以制定具体路线,您可以在此处找到文档:

此外,您还可以使用以下资源配置自定义路由文件:

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"

默认情况下,您不需要做任何事情。只需在url的最后添加
/name/THENAME

那么

  • 获取名称的值

    $name = $this -> _request -> getParam('name');
    
  • 使用该值从数据库中提取id

  • 你想怎么用就怎么用

  • 默认情况下,您不需要做任何事情。只需在url的最后添加
    /name/THENAME

    那么

  • 获取名称的值

    $name = $this -> _request -> getParam('name');
    
  • 使用该值从数据库中提取id

  • 你想怎么用就怎么用