我有这样的网址:http://localhost/sitename/some-post-title/code=24639204963309423
现在我的控制器文件中有一个findUser
函数
public function findUser() {
// I have tried with $_GET['code']
}
我试图在此函数中获取code
变量值。我尝试过使用$_GET['code']
但没有效果。
任何想法如何在控制器功能中获得价值?
感谢。
答案 0 :(得分:4)
您是否尝试获取路径段变量或GET变量?看起来你要两者兼得。
在CI中,如果您更新网址,则可以使用$this->input->get
http://localhost/sitename/some-post-title/?code=24639204963309423
(注意问号)。
或者,您可以修改您的网址,使其如下所示
http://localhost/sitename/some-post-title/code/24639204963309423
然后使用像这样的URI段
$data = $this->uri->uri_to_assoc();
$code = $data['code'];
如果您不想更改网址,则必须手动中断该字符串
$data = $this->uri->segment(3);
$data = explode($data, '=');
$code = $data[1];
我认为第二种选择是最友好和最漂亮的解决方案。但是每个都应该在功能上相同。
答案 1 :(得分:1)
如果您的URI包含两个以上的段,它们将作为参数传递给您的函数。
例如,假设你有一个像这样的URI:
example.com/index.php/products/shoes/sandals/123
您的函数将传递URI段3和4("凉鞋"和" 123"):
<?php
class Products extends CI_Controller {
public function shoes($sandals, $id)
{
echo $sandals;
echo $id;
}
}
?>
如果您使用GET
获取参数,可以这样做:
$this->input->get('get_parameter_name');
通常,URL字符串与其对应的控制器类/方法之间存在一对一的关系。 URI中的段通常遵循以下模式:
example.com/class/function/id/