2015-12-11 3 views
-1

Я новичок в CI.Codeigniter Изменить имя метода URL

Я хочу изменить имя функции в адресной строке с add_car до addcar.

На самом деле мой URL создается как ниже

http://localhost/projectName/controller/add_car 

Но я хочу в следующем URL

http://localhost/projectName/controller/addcar 

Возможно ли это? Пожалуйста, помогите мне.

[Note]: Мое имя метода add_car.

+1

Перейти к 'конфиг/routes.php' и добавить' $ маршрут [ 'addcar'] = "add_car"; ' – Saty

+0

@Saty Но у меня есть много «контроллер» и множество «методов» в нем? – Sadikhasan

+0

Проверьте это [link] (http://stackoverflow.com/questions/2428134/codeigniter-routes-regex-using-dashes-in-controller-method-names) – Saty

ответ

1

Изменить add_car функция addcar в контроллере

function add_car(){ 
    //... 
} 

Для

function addcar(){ 
     ^
    //... 
} 

Или в routes.php

$route['controller/add_car'] = "controller/addcar"; 
+0

Я не хочу менять соглашение об именах в контроллере. Его хорошо с подчеркиванием. – Sadikhasan

+0

проверить редактирование ... –

+0

Для каждого метода мне нужно уточнить его «маршрут»? – Sadikhasan

0

Вы можете использовать это по маршруту:

$route['addcar'] = 'Add_car/index'; 
$route['addcar/(:any)'] = 'Add_car/car_lookup/$1'; 

и контроллер

<?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"; 
} 
} 
+0

Для каждого метода мне нужно уточнить его «маршрут»? – Sadikhasan

+0

если вы используете это. вам не нужно будет определять новый маршрут каждый раз, когда вы добавляете новый метод. –

2

Вы можете сделать это двумя способами

Метод 01

Edit - config/routes.php

$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 
+0

любое обновление по этому вопросу –

1

$route['controller/([a-z]+)_([a-z]+)'] = "controller/$1$2";

Вышеприведенный пример направит каждое запрошенное действие, содержащее «_» между двумя строками, в действие/метод без «_».

Подробнее о Code Igniter регулярных выражений маршрута:
https://ellislab.com/codeigniter/user-guide/general/routing.html

Смежные вопросы