学习记录—yii2简单的登录功能实现
2015-10-03 16:33
627 查看
先简单的制作一个登录表单
要求:登录成功则提示【登录成功】,密码错误或用户名错误提示【账户或密码错误!】
前段代码:
控制器:
模型:
要求:登录成功则提示【登录成功】,密码错误或用户名错误提示【账户或密码错误!】
前段代码:
<?php $form = ActiveForm::begin([ 'id' => 'abc-form', 'options' => ['class' => 'form-horizontal'], ])?> <?= $form->field($model, 'username')->textInput(['placeholder' => "用户名"])->label('用户名') ?> <?= $form->field($model, 'password')->passwordInput()->label('密码') ?> <?= Html::submitButton('提交') ?> <?php ActiveForm::end() ?>
控制器:
<?php namespace app\controllers; use Yii; use yii\web\Controller; use app\models\Abc; class AbcController extends Controller { public function actionIndex() { Yii::$app->controller->layout = false; //实例化模型,并定义使用场景 $model = new Abc(['scenario'=>'login']); if ($model->load(Yii::$app->request->post()) && $model->login()) { echo "登录成功"; } else { return $this->render('abc', ['model' => $model,]); } } } ?>
模型:
<?php namespace app\models; use Yii; use yii\db\ActiveRecord; use yii\web\IdentityInterface; class Abc extends ActiveRecord implements IdentityInterface { //定义特性,用于存储用户输入的信息 public $username; public $password; //声明验证规则 public function rules() { return [ [['username','password'], 'required','on'=>'login'],//规定username和password为必填 ['username', 'string', 'length' => [2, 10], 'on' => 'login'], //用户名长度以及类型验证 ['password', 'string', 'length' => [4, 12], 'on' => 'login'], //密码长度以及类型验证 ['password', 'validatePassword', 'on' => 'login'],//定义密码的验证规则,使用validatePassword方法进行验证 ]; } //通过用户名查询用户 public static function findByUsername($username) { return static::findOne(['username'=>$username]); } //密码验证规则 public function validatePassword(){ $user=$this->findByUsername($this->username); if (!$user || !$user->validatePassword($this->password)) { $this->addError('password', '用户名或密码错误'); } } //登录验证 public function login() { if ($this->validate()) { return Yii::$app->user->login(static::findByUsername($this->username),0); } else { return false; } }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android 代码实现控件之间的间距
- [Android]在代码里运行另一个程序的方法
- 数据库链接字符串查询网站
- 肯特·贝克:改变人生的代码整理魔法
- DB2实例管理
- DB2实例管理
- Patrol 7 架构下?的处理方法
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 清除IE分级审查密码
- 网页恶意代码的预防
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 华为路由器密码恢复
- 注册表导出管理员密码文件
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- 在线用表单建立文件夹