【问题标题】:Method Issue On My MVC我的 MVC 上的方法问题
【发布时间】:2012-02-29 06:46:44
【问题描述】:

我只是在制作自己的 MVC。但是,我遇到了一个问题。如您之前所知,如果有像“www.site.com/users/star”这样的 URL,“users”被定义为控制器,“star”被定义为 MVC 风格的方法。因此,我假设我想为用户创建个人资料页面。我需要一个 URL,例如“www.site.com/user/{username}”。在这种情况下,用户名被评估为一种方法,但它一定不是。它只是用户名。如何防止这种复杂性?

这是我的 bootstrap.php: http://tinypaste.com/75cd8487

提前谢谢..

【问题讨论】:

  • 使用真正的 MVC 引擎。为什么要给自己制造这么多麻烦?有这么多免费的框架可供使用,我无法想象你为什么要重新发明轮子。
  • @spinon 用于练习和/或体验。您会惊讶地发现,您能够以多快的速度使用 X-Framework 的引导程序并立即认同他们对同一问题的解决方案。
  • 路由器可能会在开始解释请求之前将“user/”替换为“user/view/”。这样你的第二个参数可能是 id 而不是方法。这当然会将用户控制器限制为一种方法,除非您对路由非常复杂,因此您可能需要考虑使用完整路径“user/view/id”。
  • @spinon 我使用过真正的 MVC 引擎,例如 Codeigniter,但由于缺乏关于 CI 的文档,我无法完全访问所有内容,而且我的主题引擎也遇到了麻烦。然后我决定制作自己的 MVC 引擎。

标签: php model-view-controller methods bootstrapping


【解决方案1】:

您可以使用不同的网址:

www.site.com/user/view/{username}

现在,view 是方法,它将通过 {username} 参数。

【讨论】:

  • 我会尝试这种方式。谢谢!不然我就照其他朋友之前说的做个路由器吧。
【解决方案2】:

很多框架都有路由的概念。对于路由,URL 不是控制器/动作的具体定义。您可以指定一个类似'users/*' 的路由并让它指向用户控制器并查看操作。然后,由控制器来处理不同的参数。

【讨论】:

    【解决方案3】:

    nickb 是正确的,但您可以创建一个重新路由机制,它将在后台(没有客户端重定向)将此类请求(在控制器“用户”中找不到操作方法)重新路由到控制器(用户)方法(信息、视图等等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2019-11-15
      • 2018-05-31
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多