The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 实现用户注册(功能实现)]

在准备好模型后,我们现在来处理表单的提交。

DoYouHaoBaby 系统提供了控件的方式来显示表单,但是在写这篇文章的时候,该功能还
有一点问题没有修复,所以我们这里还是我们以前看到那个表单。

实现用户登录

修改 user 控制器的 register() 方法为:

  1. /**  
  2.  * 注册一个用户  
  3.  */  
  4.  public function register(){   
  5.   
  6.     $this->display();   
  7. }  


保存用户数据的方法为insert():
  1. /**  
  2.  * 注册一个用户  
  3.   */  
  4.  public function insert(){   
  5.   
  6.        // 创建模型   
  7.        $oModel = new UserModel();   
  8.   
  9.        // 保存数据   
  10.        $oModel->save( );   
  11.   
  12.        // 开始查找错误   
  13.        if(  !$oModel->isError( ) ) {   
  14.   
  15.            G::dump( $oModel->user_id );   
  16.            G::dump( $oModel->user_name );   
  17.            G::dump( $oModel->user_password );   
  18.            //$this->S( G::L( '数据保存成功!' ) );   
  19.        }   
  20.   
  21.        else{   
  22.   
  23.            $this->E(  $oModel->getErrorMessage( ) );   
  24.        }   
  25.   
  26.     }  


当然,DoYouHaoBaby 拥有完善的自动定位模板 功能,如果仅仅是显示界面,可以不定义上面的方法,甚至可以不用定义
控制器。

现在用浏览器访问 http://localhost/doyouhaobaby/wedoit/index.php/user/register ,不输入任何内容就点击“提交”按钮,将可以看到如下界面:
如图:


 
对验证信息的反馈


现在输入用户名为:doyouhaobaby,密码为 123456,提交后会看到如下内容:

如图2:



如图3:

 
注册成功后的输出信息


通过 phpMyAdmin 可以看到刚刚输入的信息已经存入数据库了:

如图4:


这里说一下,为什么ID 不为1呢?因为之前提交过几次数据,ID 自动增长啊。为了开发,我们手工将doyouhaobaby

ID 改为1.

为了方便后续开发,我们再修改一下 user 控制器的 register() 方法:

  1. G::dump( $oModel->user_id );   
  2.            G::dump( $oModel->user_name );   
  3.            G::dump( $oModel->user_password );   
  4.            //$this->S( G::L( '数据保存成功!' ) );  

改为:

  1. $this->assign( '__JumpUrl__',G::U( 'index/index' ) );   
  2. $this->S( G::L( '数据保存成功!' ) );  



我们再次刷新刚才的表单,你会看到如下的错误。

如图5:


如图6:

DoYouHaoBaby 会根据数据库设计来对重复值进行验证,当然你可以根据一般验证来做,这个不需要人工干预。

说明:在设计数据库的时候,我们设计user_name 字段为unique,然后系统就可以捕获该错误。我们可以通过

模型中提供的 $oModel->isError() 和 $oModel->getErrorMessage( ) 来捕获响应的错误。


我们从新注册了几个用户,保存后,自动跳转效果如下,呵呵。

如图7:

好了,用户注册就搞定了,大家可以修改着试试看看。