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

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

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

  

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

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

1
2
3
4
5
6
7
8
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
class Hello extends CI_Controller {
    public function index(){
        print_r($_GET);
    }
}

  浏览器中访问:

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

  得到的结果如下:

1
2
3
4
5
Array
(
    [name] => abc
    [age] => 30
)

  

  第二种形式,

1
2
3
4
5
6
7
8
9
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
class Hello extends CI_Controller {
    //为了保证未传参时,程序不会出错,最好为参数设定默认值
    public function index($name='',$age=''){
        echo $name."___".$age;
    }
}

  浏览器中访问:

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

  只会输出___

  但是访问下面这个URL:

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

  那么就会输出:abc___30

  

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

posted @   寻觅beyond  阅读(729)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
返回顶部
点击右上角即可分享
微信分享提示