2012-02-12 3 views
0

Как я могу сделать контроллер, который будет доступен по следующему адресу адресу:Код воспламенитель страницы контроллера

/index.php/my_controller/controller_function/another_function 

или

/index.php/account/profile/edit 

Я знаю, что это возможно, но я не могу найти какой-либо сайт, который объяснит это, из руководства, которое я прочитал, что контроллер должен находиться в папке, но что тогда?

+0

Должны ли быть доступны из обоих из них (если это так, я предложил бы использовать «И», а не «ИЛИ» в вашем вопросе;))? Вы посмотрели http://www.codeigniter.fr/user_guide/general/routing.html? – SCO

ответ

1

сделать контроллер под названием class Account extends CI_Controller, который имеет метод profile, принимая параметр $action - это будет автоматически заполняться edit при посещении /account/profile/edit.

public function profile ($action = '') 
{ 
    switch ($action) 
    { 
     case 'edit': 
      $this->show_edit_account(); 
     break; 

     default: 
      $this->show_default_action(); 
     break; 
    } 
} 

protected function show_edit_account() 
{ 
    echo 'Edit account!'; 
} 
1

В качестве альтернативы ответа Джо, найти свой код легче организовать, когда у меня только есть функции контроллера отображается непосредственно к тому, что я вижу в URL пути вместо вызова других функций. В зависимости от того, сколько вы планируете делать в своем классе учетных записей, это может быть беспорядок для обслуживания с этого единственного контроллера. Поэтому, если все, что вы пытаетесь сделать, это достичь определенной структуры URL, вы можете вложить свой контроллер в подпапку в папке контроллеров CodeIgniter.

Таким образом, /index.php/account/profile/edit будет отображаться на /application/controllers/account/profile.php и edit будет функцией в пределах profile.php. Таким образом, вы также можете поддерживать отдельные контроллеры для различных функций в аккаунте. например в дополнение к профилю вы можете сделать отдельный контроллер delete.php для обработки удалений по учетным записям.

Вы можете прочитать больше о том, как CodeIgniter отображает URL-адреса для контроллеров, функций и переменных в руководстве: http://codeigniter.com/user_guide/general/urls.html

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