使用codeigniter在URL中传递多个变量

Tot*_*bie 11 php url uri codeigniter get

很抱歉打扰但是我希望有人可以帮我解决我在CI中遇到的一个非常平凡的问题.我可以使用CI的示例通过URL发送变量,例如:

http://localhost/project/main/getproduct/24
Run Code Online (Sandbox Code Playgroud)

在我的主控制器的getproduct()方法中,我可以将变量发送24,没有问题.

但是我现在想通过URL传递两个变量,但我不知道如何做到这一点或者CodeIgniter是否允许我这样做.有人可以告诉我如何在CI中传递2个变量和一个可以检索它们的方法我尝试过:

http://localhost/project/main/getproduct/24/45
Run Code Online (Sandbox Code Playgroud)

然后在我的getproduct方法中:

public function getproduct($productID, $factoryID){
  .....
}
Run Code Online (Sandbox Code Playgroud)

但我发现我的方法可以得到第一个变量没有问题,但不是第二个变量.任何人都可以指出我正确的方向.提前谢谢了.

Don*_*van 25

接受的答案适用于此特定问题,但如果网址发生变化则无效.要访问控制器中的多个变量,只需添加到函数定义中即可.

http://localhost/project/main/getproduct/24/45

class Main extends CI_Controller {

    public function getproduct($productID = 0, $factoryID = 0)
    {
      // ProductID will be 25
      // Factory ID will be 45
    }
}
Run Code Online (Sandbox Code Playgroud)

参考:CodeIgniter用户指南


小智 23

您可以使用它uri来检索网址中的值

这是一个例子

public function getproduct()
{
  $productID =  $this->uri->segment(3);
  $factoryID =  $this->uri->segment(4);
  // ProductID will be 25
  // Factory ID will be 45
}
Run Code Online (Sandbox Code Playgroud)

然后您可以随意使用这些值


小智 10

您必须在config/routes.php中设置路由以解析项目.

看起来像:

   $route["getproduct/(:any)/(:num)"]="main/changequestion/$1/$2"
Run Code Online (Sandbox Code Playgroud)

然后我希望它会奏效.

  • ^ URI路由方法工作非常好,没有麻烦! (2认同)