Кодовый блок управления Igniter - PullRequest
0 голосов
/ 13 февраля 2012

Как мне создать контроллер, который будет доступен по следующему URL-адресу:

/index.php/my_controller/controller_function/another_function

или

/index.php/account/profile/edit

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

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

В качестве альтернативы ответу Джо, я считаю, что мой код проще организовать, когда у меня просто есть функция контроллера, сопоставленная непосредственно с тем, что я вижу в пути 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

1 голос
/ 13 февраля 2012

Создайте контроллер с именем 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!';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...