【问题标题】:Retrieve parameter from URL php从 URL php 中检索参数
【发布时间】:2017-07-10 12:49:19
【问题描述】:

我正在尝试实现这个 PHP MVC 应用程序。 我在这里的尝试是添加/编辑/删除类别。类别具有名称和描述。它的视图基本上是一个包含类别数据的表格和一个用于编辑/删除的链接。

我已经动态加载并完成了添加类别部分,但我被困在编辑/删除中。

我的路由是这样设置的:Controller/Action/Parameter。

点击 EDIT 链接,应用程序获取行的 ID 并继续编辑页面,因此:/categories/edit/(categoryID)
因此,如果我想编辑第一个条目,它将转到 categories/edit/1

我的问题是:如何检索类别 ID?来自 URL 的 1。


$_GET['id'] 不起作用,因为我的路由看起来不像 categories/edit.php?id=etc

编辑

<?php
$routes = explode('/', $_SERVER['REQUEST_URI']);

// get controller name
if (isset($routes[1]) && !empty($routes[1])) {
    $controllerName = $routes[1];
}

// get name action
if (isset($routes[2]) && !empty($routes[2])) {
    $actionName = $routes[2];
}

if (isset($routes[3]) && !empty($routes[3])) {
    $param = $routes[3];
} 

抱歉。这是route.php。 此外,使用 array_pop 获取 id 似乎不起作用。

【问题讨论】:

  • 你得到了什么print_r($_REQUEST)
  • 向我们展示一些代码,您的链接看起来像一个 REST API(也许也可以搜索)
  • 发布您的路由规则,这将使您清楚地了解传入的 1。
  • 您是否在使用某种路由库,例如 FastRoute?我相信有人使用正则表达式。
  • 你的意思是这样的:stackoverflow.com/a/19309893/727208

标签: php content-management-system url-routing


【解决方案1】:

你可以简单地使用这样的东西,

    // Get the current URL
    $url = $_SERVER['REQUEST_URI'];

    // Explode with /
    $parts = explode('/', rtrim($url, '/'));

    // Pop the element in the end of the array
    $id = array_pop($parts);

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    相关资源
    最近更新 更多