Как сделать довольно простой маршрут URL-адреса Codeigniter?

Я посмотрел, что на некоторых веб-сайтах есть простой маршрут в форме входа/регистрации. Например, их форма перенаправляет на action="/function/method". Недавно я хотел реализовать этот маршрут в codeigniter (я использую codeigniter 3), но моя форма все еще ломается. Я не знаю, как.

Ниже мой простой контроллер:

/*
* i.e Folder: Login
* i.e Controller name: Login
* i.e steps: login/login/verify
*/

class Login extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        // Load login view
    }

    public function verify()
    {
        // Processing data from login form
    }
}

И форма входа:

<form action="<?php echo base_url('login/login/verify'); ?>" method="post" class="form-horizontal">
    <input type="text" name="username" placeholder="Username">
    <input type="password" name="password" placeholder="Password">
    <button class="btn btn-login" type="submit">Sign in</button></p>
</form>

Как мы видим, действие перенаправляется на base_url()/login/login/verify или, если мы напечатаем это, получится http://localhost/domain/login/login/verify. Я думаю, что это кажется слишком длинным. Я хочу упростить этот маршрут, например, action="/login/verify". Я пытаюсь сделать маршрут $route['login/(:any)'] = "login/login/$1", и он не работает. Небольшой трюк, возможно, переименовать папку входа в систему, например, user, чтобы она была user/login/verify. Но это не то, чего я хочу.

Любая идея или направление?


person learn4life    schedule 24.09.2015    source источник


Ответы (1)


Проблема в том, что вы пытаетесь вызвать метод, который не завершается.

Помните, что схема URL-адресов Codeigniter: http://localhost/codeigniter_installation/controller/method/params/..../

Судя по вашему вопросу, вы звоните:

/login/login/verify
login - controller
login - method
verify - param 

Это будет указано как: function login($action = "verify") { do_stuff() } в вашем контроллере.

Когда нужно просто позвонить: /login/verify

person acupofjose    schedule 24.09.2015
comment
Извините, если я не ошибаюсь, я просто вызываю <form action="/login/verify" method="post" после добавления параметра в метод входа в систему, на мой взгляд? - person learn4life; 25.09.2015
comment
Ну, если быть точным, вы должны использовать url helper и сделать <?= site_url('login/verify'); ?> - person acupofjose; 25.09.2015