MVC INSERT INTO坚持从这里开始

时间:2012-03-11 19:34:14

标签: php model-view-controller codeigniter view

我有一个模型 register.php(在app / model / register.php下)

<?PHP

// Load the [default] db group
$this->load->database();

// Get Input from init form, sanitize, plop into variables.
class Register extends Model{

    function formModel(){
    //load parent constructor
    parent::Model();
    }

    function sanitizeInput(){
        var $name = mysql_real_escape_string($_POST['fullname']);
        var $email = mysql_real_escape_string($_POST['email']);
        var $pass = mysql_real_escape_string($_POST['password']);
        var $dySalt = mt_rand(20,100); 
        var $pass = hash('sha512',$dySalt.$pass);
    }

    // Set form variables into object; define db table
    $registeredObject = new getSanitizeNewRegistrant();
    $tbl = 'Fan';

    function SendRequestForData(){
        if{
        $this->db->insert($tbl,$object);
        // .. redirect()
        echo "Sent";
        }
        else{
        echo "Oops, could not register you";
        }
    }



}
?>

我正在将此模型加载到控制器registerUsers.php (在app / controller / registerUsers.php下)

<?PHP


$this->load->model('register'),'', TRUE);


?>

我很困惑如何从view开始实现这个目标?

1 个答案:

答案 0 :(得分:1)

MVC框架的工作原理如下:

模型与数据库交互: 在这里,您可以放置​​所有功能,除了向数据库插入数据或从数据库返回数据之外,只需执行此操作。

视图是用户看到的内容: 您可以在这里使用通过模型获得的数据的html页面

控制器只需连接两者: 控制器预备数据,使用模型与数据库交互,并加载视图供用户查看

如果你的注册模型中有一个函数registerUser(),你可以这样做,在控制器的一个函数中实际使用它:

$this->load->model( 'register' ); // Load register model
$return = $this->register->registerUser( $_POST['username'], $_POST['email'], $_POST['password'] ); // Try to register the user to the database
if( $return === "TRUE" ) {
  $this->load->view( 'success' ); // Hooray!
}
else {
  $this->load->view( 'fail' ); // :(
}

此处,控制器加载寄存器模型,尝试使用模型中的registerUser()函数保存用户名,电子邮件和密码,并相应地加载正确的视图。

显然,在将数据写入数据库之前,您需要清除$_POST数据和所有内容。这应该在控制器内完成。