You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter友好URL:如何从控制器传递参数至URL

在CodeIgniter中生成带查询参数的URL

嘿,我来帮你搞定这个问题~ 在CodeIgniter里生成带keyword和location这类查询参数的URL其实很简单,主要利用框架自带的URL工具就能实现,下面给你两种常用的实现方式:

1. 先确保加载URL Helper

不管用哪种方法,首先得确保URL Helper已经加载,它提供了site_url这类实用函数:

  • 可以在控制器的方法里手动加载:
    $this->load->helper('url');
    
  • 也可以在application/config/autoload.php里配置自动加载,这样全局都能用:
    $autoload['helper'] = array('url');
    

2. 生成带参数的URL的两种方法

方法一:直接拼接查询字符串(简单直观)

如果你喜欢直接拼接,只需要在site_url生成的基础URL后面加上查询参数即可,记得用urlencode处理参数值,避免特殊字符导致的问题:

// 定义参数值
$keyword = 'word';
$location = 'location';

// 生成目标URL
$target_url = site_url('Job/search_job') . '?keyword=' . urlencode($keyword) . '&location=' . urlencode($location);

方法二:使用数组传递参数(框架推荐,更规范)

CodeIgniter的site_url函数支持传入数组作为第二个参数,框架会自动帮你拼接成标准的查询字符串,还会自动处理URL编码,非常省心:

// 定义参数数组
$params = array(
    'keyword' => 'word',
    'location' => 'location'
);

// 生成目标URL
$target_url = site_url('Job/search_job', $params);

执行这段代码后,生成的URL就是你想要的http://localhost/management_system/Job/search_job?keyword=word&location=location。

额外提醒:获取URL参数

生成URL后,在search_job方法里可以这样获取参数:

// CodeIgniter 3
$keyword = $this->input->get('keyword');
$location = $this->input->get('location');

// CodeIgniter 4
$keyword = $this->request->getGet('keyword');
$location = $this->request->getGet('location');

内容的提问来源于stack exchange,提问作者Terchila Marian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:50:07