CodeIgniter中的动态导航

时间:2009-09-21 17:53:35

标签: php codeigniter

我正在查看CodeIgniter网站上的演示视频并浏览文档,但我不清楚我如何实现从一个页面到另一个页面的动态导航,具体取决于用户输入

例如,我想要一个登录表单,该表单将转发到“成功页面”或“登录失败页面”。

我应该在哪里使用此功能?

2 个答案:

答案 0 :(得分:3)

好的,对于此登录示例,您需要Form HelperForm Validation ClassURL Helper

class Login extends MY_controller {

function index()
{
    $this->load->helper('url');
    $this->load->helper('form');
    $this->load->library('form_validation');

    // some simple rules
    $this->form_validation->set_rules('username', 'Username', 'required|alpha_dash|max_length[30]');
    $this->form_validation->set_rules('password', 'Password', 'required');
    if ($this->form_validation->run() == FALSE) {
        // This will be the default when the hit this controller/action, or if they submit the form and it does not validate against the rules set above.
        // Build your form here
        // Send it to a login view or something
    } else {
        // The form has been submitted, and validated
        // At this point you authenticate the user!!
        if ($userIsAuthenticated) {
            redirect('controller/action'); //anywhere you want them to go!
        } else {
            // not authenticated...in this case show the login view with "bad username/password" message
        }
    }
}

TL;博士

使用URL Helper中的redirect()函数将用户基于控制器中的逻辑发送到其他页面。

答案 1 :(得分:0)

通常在像Codeigniter这样的MVC框架中,预先形成动态导航的逻辑将驻留在控制器中。

示例:(在php风格的伪代码中)

<?php
class Blog extends Controller {

    function login($username, $password)
    {
        if ($username and $password are correct) {
                    $this->load->view('success');
                    return;
                }

        $this->load->view('fail', $data);
    }
}
?>

我实际上并不使用Codeigniter或PHP,但我拥有其他语言的MVC经验。另外由于我对语言/框架的经验不足,请不要使用上面的代码......这只是一个例子。 :d