1:自動創建數據
//$name=$_POST['name'];
//$password=$_POST['password']; ---這個注冊頁面傳過來的POST值
下面用了自動穿件create方法就可以不用這個,會行動綁定
$user =M('User');
$User->create(); //會將傳過來的$_POST數據對應到數據庫的字段
$user->add(); //就可以直接寫入
2:自動驗證(只需要在Model類里面定義$_validate屬性)
使用步驟(注冊驗證User表)
一:創建User表自定義的Mode --->HomeLibModelUserModel.html' target='_blank'>class.php
<?php
//注意:code username password....都是你表單里面的name值,要對應
//表單里面字段名字定義的
class UserModel extends Model{
protected $_validate=array(
array('code','require','驗證碼必須填寫!'),
array('code','checkCode','驗證碼錯誤!',0,'callback',1), //使用回調函數checkCode
array('username','require','用戶必須填寫!'),
array('username','','用戶已經存在',0,'unique',1),
array('username','/^w{6,}$/','用戶名必須6個字母以上',0,'regex',1),
array('repassword','password','確認密碼不正確',0,'confirm'),
);
protected function checkCode($code){
if(md5($code)!=$_SESSION['code']){
return false;
}else{
return true;
}
}
}
?>
//控制請值對應的注冊方法
<?php
class RegisterAction extends Action{
public function doReg(){
$user=D('User'); //大D方法是會先去找你自定義的Mode,(使用上面創建的UserModel.class.php類)
//如果有有自定義的用自定義的,否則用原始的 D等同M M!=D
if(!$user->create()){//會自動去驗證 返回一個布爾類型,成功則自動創建數據
$this->error($user->getError());//獲取具體錯誤信息
}
$lastId=$user->add();
if($lastId){
$this->redirect('Index/index');
}else{
$this->error('用戶注冊失敗');
}
}
}
?>
3:自動完成(做留言的例子)
步驟:
一:創建Message表自定義的Mode --->HomeLibModelMessageModel.class.php
<?php
class MessageModel extends RelationModel{
protected $_auto=array(
array('time','time',1,'function'),
array('uid','getId',1,'callback')
);
protected function getId(){
return $_SESSION['id'];
}
}
?>
二:控制器中
<?php
class MessageAction extends Action{
public function doLiuyan(){
$message=D('Message');
//$message->time=time();
//$message->uid=$_SESSION['id']; 這2個值將在自定義MessageModel中自動填充完成
$message->add(); //返回值是新增的id號
}
}
?>
PHP編程 鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。