ArthurSS

ArthurSS

前端转后台,吃定Yii

  • 财富值1432
  • 威望值50
  • 总积分2542

个人信息

  • 2015-05-16 已签到
    连续签到50天,获得了20个金钱
  • 建议你去composer官网阅读一下Getting Started

  • 回复了 的说说
    一大早醒来——想到夏天笔记本卡该怎么办?求大神支招。现在用的是三年前的hp,各种坑啊有木有。求一款散热良好的笔记本。
    在家里和公司都设一台散热器,很好用。笔记本散热器在60元左右就能入手不错的了。
  • 借用小黑豆同学的代码,希望可以帮到你。
    下面是一个User model,继承了IdentityInterface接口, 里面有login验证方法

    
    class Users extends \yii\db\ActiveRecord implements IdentityInterface {
        public $rememberMe = false;
        public static function tableName()
        {
            return 'users';
        }
        public function rules()
        {
            return [
                [['username', 'email', 'password', 'create_at', 'status'], 'required'],
                [['create_at'], 'safe'],
                [['status'], 'integer'],
                [['username'], 'string', 'max' => 20],
                [['email'], 'string', 'max' => 40],
                [['password'], 'string', 'max' => 64],
                [['auto_key', 'access_token'], 'string', 'max' => 30],
                [['username', 'email'], 'unique', 'targetAttribute' => ['username', 'email'], 'message' => 'The combination of Username and Email has already been taken.']
            ];
        }
    
        public function attributeLabels()
        {
            return [
                'id' => 'ID',
                'username' => 'Username',
                'email' => 'Email',
                'password' => 'Password',
                'create_at' => 'Create At',
                'status' => 'Status',
                'auto_key' => 'Auto Key',
                'access_token' => 'Access Token',
            ];
        }
    
        public function scenarios()
        {
            return [
                'login'=>[ 'username', 'password'],
                'register'=>['username', 'password','email']
            ];
        }
    
        public function login()
        {
            if( !$this->validate() )
                return false;
            $user = Users::findOne( [ 'username'=>$this->username ] );
            if( $user==null )
            {
                return false;
            }
            if( $user->password != $this->password )
            {
                return false;
            }
    
            return Yii::$app->user->login($user, $this->rememberMe ? 3600*24*30 : 0);
        }
    
        public function register()
        {
            return true;
        }
    
        public static function findIdentity($id)
        {
            return static::findOne(['id'=>$id]);
        }
        public static function findIdentityByAccessToken($token, $type = null)
        {
            return static::findOne(['access_token' => $token]);
        }
    
        public function getId()
        {
            return $this->id;
        }
    
        public function getAuthKey()
        {
            return $this->auth_key;
        }
    
        public function validateAuthKey($authKey)
        {
            return $this->getAuthKey() === $authKey;
        }
    }
    

    然后再action里类似的代码如下(举例):

    class DefaultController extends Controller
    {
        public $layout = 'basic';
    
        public function actionIndex()
        {
            if( !Yii::$app->user->isGuest )
            {
                return  Yii::$app->getResponse()->redirect('?r=user/main/index');
            }
            else {
                $model = new Users();
    
                $model->setScenario('login');
                if ($model->load(Yii::$app->request->post()) && $model->login()) {
                    return $this->redirect(['/user/main/index']);
                }
                else{
                    return $this->render('login', ['model' => $model]);
                }
            }
        }
    }
    

    这些代码当时我都看了,没有问题,model里的基本可以直接用,action是举例。

  • 2015-05-15 已签到
    连续签到49天,获得了20个金钱
  • 回复了 的说说
    我说我是94年的特么没人相信,其实我自己也不相信。
    96飘过;然而楼主是女生么
  • 2015-05-14 已签到
    连续签到48天,获得了20个金钱
  • 2015-05-13 已签到
    连续签到47天,获得了20个金钱
  • 回复了 的评论

    帅哥,你更新这个要多久? 我科学上网+全局代理经常2、3个小时没反应。 换了N个 composer的镜像都一样。
    求不傲人磨心的方法。

    没有吧,几分钟就更新完了

  • 回复了 的说说
    yiichina自动签到插件
    请移步教程区
总监 等级规则
2542/5000
资料完整度
100/100
用户活跃度
0/100

Ta的关注

10

Ta的粉丝

14

Ta的访客

55