如何从 Codeigniter 获取路由 URL 中的参数?
How to get the parameters in a routed URL from Codeigniter?
如果我设置:$route['about-us']='sub-directory/article/read/100',那么用siteurl/about-us.html浏览就可以了。
我们有以下工具来获取原始(真实)uri:
$this->router->directory =>sub-directory
$this->router->class =>article
$this->router->method =>read
但是如何获取参数 100?
找出路由段的最佳方法是使用 URI class,它是 CodeIgniter 核心的一部分,因此您不必加载它。首先,如果您没有使用 CodeIgniter 的 URI 路由功能,您可以使用 segment 方法,如下所示:
// See:
// https://www.codeigniter.com/user_guide/libraries/uri.html#CI_URI::segment
$seg = $this->uri->segment(4);
但是 CodeIgniter 的文档很清楚,如果您使用 URI 路由,则需要使用 rsegment 方法,如下所示:
// See:
// https://www.codeigniter.com/user_guide/libraries/uri.html#CI_URI::rsegment
$seg = $this->uri->rsegment(4);
对于您的特定应用程序,您可能必须使用不同的 URI 段号,因此如果 4 不起作用,那么您可以尝试 3。
如果我设置:$route['about-us']='sub-directory/article/read/100',那么用siteurl/about-us.html浏览就可以了。 我们有以下工具来获取原始(真实)uri:
$this->router->directory =>sub-directory
$this->router->class =>article
$this->router->method =>read
但是如何获取参数 100?
找出路由段的最佳方法是使用 URI class,它是 CodeIgniter 核心的一部分,因此您不必加载它。首先,如果您没有使用 CodeIgniter 的 URI 路由功能,您可以使用 segment 方法,如下所示:
// See:
// https://www.codeigniter.com/user_guide/libraries/uri.html#CI_URI::segment
$seg = $this->uri->segment(4);
但是 CodeIgniter 的文档很清楚,如果您使用 URI 路由,则需要使用 rsegment 方法,如下所示:
// See:
// https://www.codeigniter.com/user_guide/libraries/uri.html#CI_URI::rsegment
$seg = $this->uri->rsegment(4);
对于您的特定应用程序,您可能必须使用不同的 URI 段号,因此如果 4 不起作用,那么您可以尝试 3。