CodeIgniter框架通过URL向控制器传递参数

  通过URL传递参数的方法是GET,在CodeIgnter框架中,通过URL有两种方式向控制器传递参数:

  1. 一种是键值对的形式。
  2. 一种是类似于文件路径的形式,这个时候,不是以键值对的形式了,我们只传递值。

  

  首先,看第一种键值对的形式,这个就是最常见的,最普通的用法,比如向Hello控制器的index方法传递name="abc",age=30,那么可以向下面这样:

  控制器Hello.php的代码如下:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');

class Hello extends CI_Controller {
	public function index(){
		print_r($_GET);
	}
}

  浏览器中访问:

http://localhost/ci/index.php/hello/index?name=abc&age=30

  得到的结果如下:

Array
(
    [name] => abc
    [age] => 30
)

  

  第二种形式,

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');

class Hello extends CI_Controller {
	//为了保证未传参时,程序不会出错,最好为参数设定默认值
	public function index($name='',$age=''){
		echo $name."___".$age;
	}
}

  浏览器中访问:

http://localhost/ci/index.php/hello/index

  只会输出___

  但是访问下面这个URL:

http://localhost/ci/index.php/hello/index/abc/30

  那么就会输出:abc___30

  

  从上面的例子中可以看出,控制器中的方法接受的参数,可以是来自从调用这个方法时传递的参,还可以获取URL中的参数,只不过从URL中获取参数时,不用在URL中指定key,直接指定value即可,并且URL中控制器和方法之后的字符串会以 / 分隔,然后按顺序传递给控制器方法。

原文地址:https://www.cnblogs.com/-beyond/p/8819676.html