二开appserver中的controller

技术问题 · guxing · 于 4年前 发布 · 1257 次阅读

你好。之前提问过增加微信自动登陆的问题。
目前需要用户自行注册,绑定。而我要在用户执行微信页面时,直接注册一个账号,以便减少用户的操作。
所以我需要修改 /customer/login/wxindex 对应的代码部分。

我目前使用composer安装的程序,修改这段代码的时候,需要注意以后升级不影响到此处。 所以我需要知道如何修改或复写此处代码。但我在开发文档中未能找到相关的介绍。 是否可以给出来一个解决方案?

共收到 3 条回复
guxing#14年前 0 个赞

https://github.com/fecshop/yii2_fecshop/blob/master/services/Customer.php#L843 我希望能够修改这个代码,如何未能找到openid的用户,直接在此处创建一个账号。但不影响后续升级

guxing#24年前 0 个赞
    /**
     * @param $openid | string
     * 通过微信的openid 得到 user
     */
    protected function actionGetByWxOpenid($openid)
    {
        $one = $this->_customerModel->findOne(['wx_openid' => $openid]);
        if(!$one){
                $model = $this->_customerRegisterModel;
                $model->type='wx';
                $model->password=rand(111111,99999);
                $model->wx_openid=$openid;
                $model->created_at = time();
                $model->updated_at = time();
                $model->save();
        }
        $one = $this->_customerModel->findOne(['wx_openid' => $openid]);
        $primaryKey = $this->getPrimaryKey();
        if ($one[$primaryKey]) {

            return $one;
        }

        return null;
    }

临时修改为如上所示,暂时可以直接创建账号并直接登陆。 希望能够提供一个不影响以后升级的解决方案。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics