ThinkPHP はデータを自動的に作成し、自動的に検証し、詳細な例を自動的に完了します (19)
1: データを自動的に作成します
//$name=$_POST['name'];//$password= $ _POST['password']; ---この登録ページから渡される POST 値$user =M を定義します。 ('User');$User->create(); //渡された $_POST データはデータベース フィールド にマッピングされます
$user->add(); // 2: 自動検証
(Modelクラスに$_validate属性を定義するだけ)
利用手順(登録検証Userテーブル)
1: User テーブルのカスタム モードを作成します --->HomeLibModelUserModel.class.php
//注: コード ユーザー名 パスワード.... はフォーム内の名前の値であり、
に対応する必要があります。 / /
class UserModel extends Model{
protected $_validate=array(
array('code','require','検証コードを入力する必要があります!'),
array(' code','checkCode','検証コード エラー!',0,'callback',1), //コールバック関数を使用します checkCode
array('ユーザー名','必須','ユーザーは入力する必要があります!'),
array('ユーザー名','', 'ユーザーはすでに存在します',0,'一意',1),
array('ユーザー名','/^w{6,}$/','ユーザー名必須 6 文字以上',0,'regex',1),
array('repassword','password','パスワードが間違っていることを確認してください',0 、'確認')、
);
保護された関数 checkCode($code){
if(md5($code)!=$_SESSION['code']){
return false;
}else{
return true ;
}
}
}
?>
// 対応する登録メソッドを制御します
class RegisterAction extends Action{
public function doReg(){
$user=D('User') // 大きな D メソッドが最初に行きます。カスタマイズモード、(上で作成した UserModel.class.php クラスを使用)
M と同等 / 自動的に検証され、成功した場合はデータが自動的に作成されます <🎜。 >
$this->error($user->getError());//特定のエラー メッセージを取得
}
$lastId=$user->add();
if($lastId){
$this->redirect('Index/index');
}else{
$this->error('ユーザー登録に失敗しました');
}
}
}
?>
3: オートコンプリート (メッセージを残す例)
手順:
1: メッセージ テーブルのカスタマイズされたモードを作成します --->HomeLibModelMessageModel.class.php
class MessageModel extends RelationModel{
protected $ _auto=array(
array('time','time',1,'function'),
array('uid','getId',1,'callback')
);
保護された関数getId(){
return $_SESSION['id'];
}
}
?>
2: コントローラー内
class MessageAction extends Action{
public function doLiuyan(){
$message=D('メッセージ');
//$message->time=time();
//$message->uid=$_SESSION['id']; これら 2 つの値は、カスタム MessageModel
$message->add() //戻り値は新しい ID 番号です
}
}
?>