2013-10-26 6 views
0

Я уже несколько часов стучаю головой об этой проблеме. Я выглядел высоко и низко, но для меня ничего не работает. Это должно быть просто, и я уверен, что это так.Передача параметров в CodeIgniter

Я пытаюсь передать некоторые параметры в CodeIgniter в URL-адрес, и ничего не работает. Вот мой контроллер:

class Form_controller extends CI_Controller { 
    public function change($key = NULL) { 
     if (is_null($key)) { 
      redirect("reset"); 
     } else { 
      echo "Hello world!"; 
     } 
    } 
} 

Вот мой маршрут: «Привет, мир!»

$route['change/(:any)'] = "form_controller/change/$1"; 

Каждый раз, когда я посещаю /index.php/change/hello я получаю строку но когда я нахожусь /index.php/change, я получил 404 не найден.

То, что я пытаюсь сделать, это передать параметр моему контроллеру в целях проверки БД для конкретного ключа и последующего воздействия на него. Если ключ не существует в БД, тогда мне нужно перенаправить их в другое место.

Любые мысли по этому поводу?

+0

посмотрите [здесь] (http://stackoverflow.com/questions/8149146/route-to-redirect-to-a-controller-an-action-by-default-on-codeigniter) –

ответ

2

Ничего, я понял. Я в конечном итоге сделать два различных маршрута, чтобы справиться с ними, например, так:

$route['change'] = "form_controller/change"; 
$route['change/(:any)'] = "form_controller/change/$1"; 

А функция в контроллере будет выглядеть так:

public function change($key = NULL) { 
    if (is_null($key)) { 
     redirect("reset"); 
    } else if ($this->form_model->checkKey($key)) { 
     $this->load->view("templates/gateway_header"); 
     $this->load->view("forms/change"); 
     $this->load->view("templates/gateway_footer"); 
    } else { 
     redirect("reset");   
    } 
} 

Если у кого есть лучшее решение, я все уши , Это работало для меня, хотя.

0

Это может помочь вам

public function change() { 
$key = $this->uri->segment(3); 

http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

Это позволяет захватить сегмент легко с помощью CI URL-адрес помощник

index.php/изменение/(3 сегмента) эта часть войдет в эту переменную $ key.

Это не может быть то, что вы ищете, но это очень полезно, если вы пытаетесь передать две переменные или больше, потому что вы можете просто захватить сегмент из URL и сохранить его в переменной

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