关于后盾网yii框架的学习小结(6)--数据库连接配置与模型定义与后台登陆验

1.首先,在D:\wamp\www\yii\blog\protected\config的main.php这个配置文件里面,将db的这个配置打开

'db'=>array(
'connectionString' => 'mysql:host=127.0.0.1;dbname=blog',//配置host和数据库的名字
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => 'hd_',//表前缀
'enableParamLogging'  => true //开启调试信息
),

下图是创建数据库表的方法。
在linux下创建新的数据库

在D:\wamp\www\yii\framework\db目录下的CDbConnection.php文件里有你在main.php里面配置的参数信息
public connectionString;publicusername=”;
public password=”;publicschemaCachingDuration=0;
public schemaCachingExclude=array();publicschemaCacheID=’cache’;
public queryCachingDuration=0;publicqueryCachingDependency;
public queryCachingCount=0;publicqueryCacheID=’cache’;
public autoConnect=true;publiccharset;
public emulatePrepare;publicenableParamLogging=false;
public enableProfiling=false;publictablePrefix;
public $initSQLs;

public connectionString;publicusername=”; 
public password=”;publicschemaCachingDuration=0; 
public schemaCachingExclude=array();publicschemaCacheID=’cache’; 
public queryCachingDuration=0;publicqueryCachingDependency; 
public queryCachingCount=0;publicqueryCacheID=’cache’; 
public autoConnect=true;publiccharset; 
public emulatePrepare;publicenableParamLogging=false; 
public enableProfiling=false;publictablePrefix; 
public $initSQLs;

2.然后是测试数据库是否连通。需要进入你要编写的Controller里面。如我现在用的是LoginController.php这个文件里面的控制器。在里面的actionIndex方法里面加上var_dump(Yii::app()->db);
然后通过url:localhost/yii/blog/index.php?r=admin/login/index 来调用。出现如下情况表示成功。

数据库连接成的情况下

3.创建一个模型(model),这样才能进行增删改查的一些功能。模型创建在D:\wamp\www\yii\blog\protected\models这个里面,前台后台用到的模型都放这里,因为yii的公用性比较好,前后台模型能够共用。
名称随你自己定在,如在这个目录下创建一个user.php文件。这个文件里面的的类的名字应该和文件名一样,用User。(建议一个数据库表建一个模型)

4.在LoginController这个控制器里面,对model的东西进行调用。

$userInfo = User::model()->find('username = :name',array(':name'=>'admin'));//获取admin的所有信息
p($userInfo);die;

上面的这段代码是在controller里面调用model层的东西,这里是调用find方法。里面的参数是user这个model里面定义的变量username,然后用等号= 来判断,通过:name这种来传递参数。

<ul id="peo">
    <li class="error"><?php echo $form->error($loginForm,'username') ?>
    </li>
</ul>
<ul id="psd">
    <li class="error"><?php echo $form->error($loginForm,'password') ?>
    </li>
</ul>
<ul id="ver">
    <li class="error"><?php echo $form->error($loginForm,'captcha') ?>
    <!--form->error()是用来显示错误信息的-->
    </li>
</ul>

关于model层里面的rules函数

public function rules()
    {
        return array(
            // username and password are required
            array('username', 'required', 'message'=>'用户名必须填写'),
            array('password', 'required', 'message'=>'密码必须填写'),
            // rememberMe needs to be a boolean
            array('rememberMe', 'boolean'),
            // password needs to be authenticated
            array('password', 'authenticate'),//这个autenticate调用的是model面自己写的方法。
            array('captcha', 'captcha', 'message'=>'验证码错误')
        );
    }
/**
 * Authenticates the password.
 * This is the 'authenticate' validator as declared in rules().
 */
public function authenticate($attribute,$params) {
        if(!$this->hasErrors()) {
            $this->_identity=new UserIdentity($this->username,$this->password);//将获取到的username和password传递给UserIdentity这个类,这个类是在components里面的,是自己放置的组件,和controller组件是一样的,
            if(!$this->_identity->authenticate())
                $this->addError('password','用户名或者密码不正确');
        }
    }
$loginForm->attributes = $_POST['LoginForm'];//在控制器里面,通过这个获取数据。

验证成功是的密码

f($loginForm->validate() && $loginForm->login()){
                Yii::app()->session['logintime'] = time();
                $this->redirect(array('default/index'));
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值