我有一个模型 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
开始实现这个目标?
答案 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
数据和所有内容。这应该在控制器内完成。