如何制作一个非常简单的Codeigniter网址?

时间:2015-09-24 19:38:13

标签: codeigniter codeigniter-url codeigniter-routing codeigniter-3

我看到一些网站在登录/注册表单中有一条简单的路线。例如,他们的表单重定向到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。但这不是我想要的。

任何想法或方向?

1 个答案:

答案 0 :(得分:1)

问题是你试图调用一个不退出的方法。

请记住,Codeigniter的URL方案是: http://localhost/codeigniter_installation/controller/method/params/..../

根据您的问题,您似乎在致电:

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

这将在控制器中列为:function login($action = "verify") { do_stuff() }

当您应该致电时:/login/verify