Php CodeIgniter:向URL添加参数
开始我的第一个CI项目,我只是想知道如何处理URL参数?我有一个名为“city”的控制器,我修改了我的mod_rewrite,以便localhost/codeigniter使用rewrite来重写localhost/codeigniter/city。我要做的是在URL的末尾添加一个城市名称,并使用get segment查询一个表 我的例子是localhost/codeigniter/edinburgh。我将获取最后一段,然后创建sql查询。然而,我认为当我把爱丁堡放到URL中时,CI认为我在寻找一个名为“爱丁堡”的控制器 我是否必须添加路由输入或类似内容?是的,您可以使用: 但是为什么不使用一个名为(例如)city的模块来获取经典的uri方案呢Php CodeIgniter:向URL添加参数,php,codeigniter,codeigniter-routing,Php,Codeigniter,Codeigniter Routing,开始我的第一个CI项目,我只是想知道如何处理URL参数?我有一个名为“city”的控制器,我修改了我的mod_rewrite,以便localhost/codeigniter使用rewrite来重写localhost/codeigniter/city。我要做的是在URL的末尾添加一个城市名称,并使用get segment查询一个表 我的例子是localhost/codeigniter/edinburgh。我将获取最后一段,然后创建sql查询。然而,我认为当我把爱丁堡放到URL中时,CI认为我在寻找
class city extends Controller {
public void index($city=false) {
if ($city) { } else { }
}
}
编辑:您甚至可以在全局配置文件中选择城市作为默认控制器。您确实可以使用它来执行此操作
$route[':any']=“控制器/方法”
这将把基本url之后的所有内容重定向到该控制器中指定的控制器和方法。要获取url段,可以使用
$this->load->helper('url');//首先加载辅助对象
$city=$this->uri->segment(1)
当访问上述示例中的$city变量时,将使用爱丁堡
希望有帮助
另外,您不需要重新编写mod_来指定默认控制器。您可以在config.php中的Routes下进行设置。将城市指定为默认控制器,您就可以摆脱mod_重写
$path = "/codeignter/city/viewcity/Edinburg";
这将导致调用城市控制器,执行方法查看城市,并传递值为的参数“爱丁堡”!
这是你的控制器的代码
class city extends Controller {
public viewcity($city='') {
echo ($city === '') ? "The city you want to view is {$city}!" : "not defined!";
}
}
阿门:)另一种方法:
route.php:
$route['city/(:any)'] = "city/city_lookup/$1";
city.php
<?php
class City extends Controller {
function City()
{
parent::Controller();
}
function city_lookup($id)
{
echo "$id";
}
}
谢谢,现在我的post_insert方法也一样了。是否必须指定要忽略的方法?如果需要更具体的路由,只需将它们作为路由添加到$route[':any']上方。
<?php
class City extends Controller {
function City()
{
parent::Controller();
}
function city_lookup($id)
{
echo "$id";
}
}