Php Codeigniter更改URL方法名称
我是新来的 我想用Php Codeigniter更改URL方法名称,php,codeigniter,Php,Codeigniter,我是新来的 我想用add\u car将地址栏url中的函数名更改为addcar 实际上,我的url创建如下 http://localhost/projectName/controller/add_car 但我想在URL以下 http://localhost/projectName/controller/addcar 可能吗?请帮帮我 [注意]:我的实际方法名称是添加车将添加车功能更改为控制器中的添加车 function add_car(){ //... } <?php defin
add\u car
将地址栏url中的函数名更改为addcar
实际上,我的url创建如下
http://localhost/projectName/controller/add_car
但我想在URL以下
http://localhost/projectName/controller/addcar
可能吗?请帮帮我
[注意]
:我的实际方法名称是添加车
将添加车
功能更改为控制器中的添加车
function add_car(){
//...
}
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Add_car extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function car_lookup($method = NULL)
{
if (method_exists($this, $method))
{
$this->$method();
}
else
{
$this->index(); // call default index
}
}
public function index()
{
echo "index";
}
public function method_a()
{
echo "aaaaa";
}
public function method_b()
{
echo "bbbbb";
}
}
到
或者在routes.php中
$route['controller/add_car'] = "controller/addcar";
$route['controller/addcar'] = 'controller/add_car';
$route['controller/deletecar'] = 'controller/delete_car';
您可以在路线上使用此选项:
$route['addcar'] = 'Add_car/index';
$route['addcar/(:any)'] = 'Add_car/car_lookup/$1';
你的控制器呢
function add_car(){
//...
}
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Add_car extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function car_lookup($method = NULL)
{
if (method_exists($this, $method))
{
$this->$method();
}
else
{
$this->index(); // call default index
}
}
public function index()
{
echo "index";
}
public function method_a()
{
echo "aaaaa";
}
public function method_b()
{
echo "bbbbb";
}
}
您可以通过两种方法来完成
方法01
编辑-config/routes.php
$route['controller/add_car'] = "controller/addcar";
$route['controller/addcar'] = 'controller/add_car';
$route['controller/deletecar'] = 'controller/delete_car';
输出-www.exapmle.com/controller/addcar
方法02
根据需要更改控制器功能名称
public function addcar($value='')
{
# code...
}
public function deletecar($value='')
{
# code...
}
输出-www.exapmle.com/controller/addcar
进一步了解
如果您使用$route['addcar']='controller/add_car'代码>URL看起来像
www.exapmle.com/addcar
$route['controller/([a-z]+)z([a-z]+)']=“controller/$1$2”代码>
上面的示例将在两个字符串之间包含“\u1”的每个请求操作路由到不带“\u1”的操作/方法
有关代码点火器正则表达式路由的详细信息:
我不想更改控制器中的命名约定。下划线没问题。对于每个方法,我都需要指定其路由
?实际上,我想在URL地址栏中更改方法名称,但不想更改实际的方法名称。在这种情况下使用路由。但是我有很多控制器
和很多方法
?对于每个方法,我都需要指定其路线
?如果您使用此路线。您不需要每次添加新方法时都定义新路由。请转到config/routes.php
并添加$route['addcar']=“add_car”代码>@Saty但是我有很多控制器
和很多方法
?检查这个@Saty谢谢你的帮助我会试试的我在编辑我的答案。。您可以使用car_lookup函数映射您的方法。我尝试了您的答案$route['controller/addcar']='controller/add_car';如果我尝试www.mydomain.com/controller/addcar,那么它可以工作,但我在$route['(:any)]='controller/$1'之前使用过;(删除控制器名称)则其不工作。