【问题标题】:pass a post value from view to controller to model, and back to controller in code igniter将 post 值从视图传递到控制器到模型,然后在代码点火器中返回到控制器
【发布时间】:2011-02-09 21:16:49
【问题描述】:

我正在使用 Codeigniter 创建一个登录表单,并且我有一个从表单收集输入的控制器,然后我想检查以确保用户输入的内容在数据库中,所以我正在收集这些值在帖子中并希望将它们发送到模型以进行数据库连接。然后,如果结果在数据库中,我想用是或否将一些东西发送回控制器,然后我可以从那里开始。我有点卡住了,但这就是我目前所拥有的:

控制器:

function do_login()
{
    $login = $this->input->post('Login');
    $pwd = md5($this->input->post('Passwd'));


}

模型:

function check_login()
{

    $sql = $this->db->query("SELECT * FROM members WHERE loin = '?' AND password = '?'", array(//POST stuff goes in here));
    return $sql->result();

}

我不确定如何将数据传递给模型,然后再传回控制器。

任何帮助都会很棒! 谢谢!

【问题讨论】:

    标签: php database model-view-controller codeigniter


    【解决方案1】:

    在任何 MVC 表单中,POST 发送到控制器(在表单中的操作属性中)和控制器(如名称所描述的那样)控制将发生的事情,在您的情况下,应该通过模型询问数据库进行验证,获得响应,决定要做什么做,并使用视图显示结果...

    所以在你的控制器中:

    功能do_login(){ $login = $this->input->post('登录'); $pwd = md5($this->input->post('Passwd')); $results = $this->...your_model_name...->chek_login(作为登录名和密码的参数会有所帮助) // 基于结果:有记录或没有记录 - 做某事 // 可能显示视图 }

    【讨论】:

      【解决方案2】:

      +1 给@bensiu(我试图提高答案,但还不能)

      另外:不要忘记您需要显式加载模型。

      阅读this part of the user guide 应该可以回答您的大部分问题。

      【讨论】:

        【解决方案3】:

        我会在check_login 中添加 2 个参数并将其设为布尔值:

        function check_login($user, $password)
        {
        
            $sql = $this->db->query("SELECT * FROM members WHERE loin = '?' AND password = '?'", array($user, $password));
            if (...) 
                return TRUE;
            else
                return FALSE;
        }
        

        设为布尔值允许在控制器内部进行完整的登录检查,这样如果有更多测试要做,使用模型的开发人员不必知道它们,从而避免错误。

        例如,如果您想检查数据库中是否只有一行,以及一个知道是否允许登录的内部变量(只是一个示例)。 所有开发人员都会阅读有关在验证登录之前必须检查的变量的文档吗?会写那个文件吗?

        【讨论】:

        • 不完全是我正在寻找的答案,但你的回答给了我灵感,我明白了。谢谢!
        猜你喜欢
        • 1970-01-01
        • 2014-01-05
        • 2012-12-25
        • 1970-01-01
        • 2018-08-15
        • 1970-01-01
        • 2013-11-20
        • 1970-01-01
        • 2016-03-11
        相关资源
        最近更新 更多