gpt4 book ai didi

获取变量的 codeigniter 替代方案

转载 作者:行者123 更新时间:2023-12-04 02:37:58 27 4
gpt4 key购买 nike

我一直在寻找一种在 codeigniter 中传递“GET”变量的方法,结果遇到了这个: link text

我想知道如何实现它。

例如:

www.website.com/query 会给我数据库中的每个条目。

通常我会

www.website.com/query/?id=5 获取等效条目。

当我尝试以 CI 方式做到这一点时:

www.website.com/query/id/5

我收到 404 错误,因为它正在寻找名为 id 的类,但找不到它。

有没有什么办法可以一步步做到这一点?

谢谢。

最佳答案

使用 Codeigniter 开发人员设计的方法实现此目的的两种好方法。

选项一:

如果您总是希望出现一个“id”参数,您可以利用一个功能,在您要调用的方法(函数)之后立即传递 URI 中的值。

示例传递 /[controller]/[method]/[value]:

http://www.website.com/query/index/5

然后您将访问“id”的值作为函数的预期参数。

Class Query extends Controller {
...

// From your URL I assume you have an index method in the Query controller.
function index($id = NULL)
{
// Show current ID value.
echo "ID is $id";
...
}
...
}

选项二:

如果您希望允许除了 ID 之外还传递许多参数,您可以将所有参数作为键=>值对以任意顺序添加到 URI 段。

示例传递 /[controller]/[method]/[key1]/[val1]/[key2]/[val2]/[key3]/[val3]:

http://www.website.com/query/index/id/5/sort/date/highlight/term

然后,您将使用来自 URI 类的 uri_to_assoc($segment) 函数将第三段(“id”)中的所有 URI 段向前解析为键=>值对数组。

Class Query extends Controller {
...

// From your code I assume you are calling an index method in the Query controller.
function index()
{
// Get parameters from URI.
// URI Class is initialized by the system automatically.
$data->params = $this->uri->uri_to_assoc(3);
...
}
...
}

这将使您可以轻松访问所有参数,并且它们可以在 URI 中以任何顺序排列,就像传统的查询字符串一样。

$data->params 现在将包含您的 URI 段数组:

Array
(
[id] => 5
[sort] => date
[highlight] => term
)

一和二的混合:

您也可以混合使用这些选项,其中 ID 作为预期参数传递,其他选项作为键=>值对传递。当需要 ID 而其他参数都是可选的时,这是一个很好的选择。

示例传递 /[controller]/[method]/[id]/[key1]/[val1]/[key2]/[val2]:

http://www.website.com/query/index/5/sort/date/highlight/term

然后,您可以使用来自 URI 类的 uri_to_assoc($segment) 函数将第 4 段(“排序”)中的所有 URI 段向前解析为键=>值对数组。

Class Query extends Controller {
...

// From your code I assume you are calling an index method in the Query controller.
function index($id = NULL)
{
// Show current ID value.
echo "ID is $id";

// Get parameters from URI.
// URI Class is initialized by the system automatically.
$data->params = $this->uri->uri_to_assoc(4);
...
}
...
}

$id 将包含您的 ID 值,$data->params 将包含您的 URI 段数组:

关于获取变量的 codeigniter 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4281845/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com