通过URL传递参数的⽅法是GET,在CodeIgnter框架中,通过URL有两种⽅式向控制器传递参数:1. ⼀种是键值对的形式。
2. ⼀种是类似于⽂件路径的形式,这个时候,不是以键值对的形式了,我们只传递值。
⾸先,看第⼀种键值对的形式,这个就是最常见的,最普通的⽤法,⽐如向Hello控制器的index⽅法传递name=\"abc\",age=30,那么可以向下⾯这样:
控制器Hello.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)
第⼆种形式,
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中控制器和⽅法之后的字符串会以 / 分隔,然后按顺序传递给控制器⽅法。
因篇幅问题不能全部显示,请点此查看更多更全内容