美文网首页
项目中的一些知识点

项目中的一些知识点

作者: liamu | 来源:发表于2017-03-11 21:50 被阅读38次

一、数据模型的创建样例

<?php  
namespace app\modules\models;
use yii\db\ActiveRecord;
use Yii;

class Admin extends ActiveRecord
{
    public $rememberMe = true;
    public static function tableName()
    {
        return '{{%admin}}';
    }

    public function rules(){
        return [
            ['adminuser','required','message'=>'管理员账号不能为空'],
            ['adminpass','required','message'=>'管理员密码不能为空'],
            ['rememberMe','boolean'],
            ['adminpass','validatePass'],
        ];
    }

    public function validatePass(){
        if (!$this->hasErrors()) {
            $data = self::find()->where('adminuser = :user and adminpass =:pass', [':user'=>$this->adminuser,":pass"=>md5($this->adminpass)])->one();
            if (is_null($data)) {
                $this->addError("adminpass",'用户名或者密码错误');
                return false;
            }
        }
    }

    public function login($data){
        if($this->load($data) && $this->validate()){
            $lifetime = $this->rememberMe ? 24 * 3600 : 0;
            $session = Yii::$app->session;
            session_set_cookie_params($lifetime);
            $session['admin'] = ['adminuser'=>$this->adminuser,'isLogin'=>1];
            $this->updateAll(['logintime'=>time(),'loginip'=>ip2long(Yii::$app->request->userIp)],'adminuser = :user',[':user'=>$this->adminuser]);
            return (bool)$session['admin']['isLogin'];
        }
        return false;
    }
}


?>

二、http请求方式的判断

    function actionLogin()
    {
        $model = new Admin;
        $this->layout = false;
        if (Yii::$app->request->isPost) {
            $post = Yii::$app->request->post();
            if ($model->login($post)) {
                $this->redirect(['default/index']);
                Yii::$app->end();
            }
        }
        return $this->render('login',['model'=>$model]);
    }

三、模板中链接的书写

<?php echo yii\helpers\Url::to(['public/logout']); ?>

四、session的移除

    function actionLogout(){
        Yii::$app->session->removeAll();
        if (!isset(Yii::$app->session['admin']['isLogin'])) {
            $this->redirect(['public/login']);
            Yii::$app->end();
        }
        $this->goback();
    }

四、模板中ActiveForm的使用

<?php
    use yii\bootstrap\ActiveForm;
    use yii\helpers\Html;
?>
            <?php $from = ActiveForm::begin(['fieldConfig'=>['template'=>'{error}{input}']]); ?>
                <div class="span4 box">
                    <div class="content-wrap">
                        <h6>慕课商城 - 后台管理</h6>
                        <div class="form-group field-admin-adminuser">
                            <p class="help-block help-block-error"></p>
                            <?php echo $from->field($model,'adminuser')->textInput(['class'=>'span12','placeholder'=>'管理员账号']); ?>
                        </div>
                        <div class="form-group field-admin-adminpass">
                            <p class="help-block help-block-error"></p>
                            <?php echo $from->field($model,'adminpass')->passwordInput(['class'=>'span12','placeholder'=>'管理员密码']); ?>
                        </div>
                        <a href="/index.php?r=admin%2Fpublic%2Fseekpassword" class="forgot">忘记密码?</a>
                        <div class="form-group field-remember-me">
                            <?php echo $from->field($model,'rememberMe')->checkbox(['id'=>'remember-me','template'=>'<div class="remember">{input}<label for="remember-me">记住我</label></div>']); ?>
                        </div>
                        <?php echo Html::submitButton('登录',['class'=>'btn-glow primary login']); ?>
                </div>
            <!-- </form> -->
            <?php ActiveForm::end(); ?>

相关文章

  • 项目中的一些知识点

    一、数据模型的创建样例 二、http请求方式的判断 三、模板中链接的书写

  • Live-client-6-直播功能

    做了那么久铺垫,终于要写本项目中最为重要的直播功能了。首先介绍一下项目中用到的一些知识点和协议 零、知识点与协议 ...

  • 字符串截取--获取高清图片地址

    最近项目不忙来整理一下项目中用到的一些小知识点,因为自己发现小知识经常不用很容易忘记(哭?)。我们项目中有一个图片...

  • 在前后端分离项目中应用CAS

    CAS在前后端不分离项目中可以轻松对接,但是在分离项目中我们需要进行一些改造才能完成,本文以Springboot项...

  • UI基础第一天

    01-HelloWorld的实现 知识点一为项目选择模板 知识点二项目的相关配置 知识点三代码仓库 知识点四项目左...

  • vue-hackernews-2.0 细节解读

    前言 本文按源码文件分解解读了vue-hackernews-2.0开源项目中的一些知识点,作为对项目源码解读的细节...

  • 分析 Netty 死锁异常 BlockingOperationE

    本期看点 最近,我发现一些BlockOperationException异常出现在我的Netty4项目中,为什么会...

  • Redis基础数据类型——字符串类型

    今天开始,对在项目中用到的Redis方面的指令、以及一些设计进行一些归纳总结。都是曾经用到的,因此无论是知识点和指...

  • 细说变量覆盖那些事

    前言 最近在挖洞和看一些ctf题目中可以看到一些变量覆盖的知识点,之前对这个方面学习的有点不全面,虽然网上有这方面...

  • iOS - Objective-c 数组排序的几种方法

    2016年会把自己在CSDN上的一些 东西慢慢移动到简书来,都是自己在项目中用到的一些知识点. 数组排序的几种方法...

网友评论

      本文标题:项目中的一些知识点

      本文链接:https://www.haomeiwen.com/subject/bguzgttx.html