Fecshop

第 2 位会员

会员
个人信息
个人简介
Terry
个人成就
  • 发表文章次数 304
  • 发布回复次数 2792
  • 个人主页浏览次数 297
在进行语言切换时,默认货币不随语言自动切换1个月前

1.不是bug,语言是语言,货币是货币,是独立的

2.每一个store有一个默认的语言和货币设置,第一次访问的时候,使用的是默认值

3.访问后,如果切换了语言,货币还是上一次访问的货币,货币需要单独切换。

关于phpstorm 方法跳转实现1个月前

做了一些这方面的

https://github.com/fecshop/yii2_fecshop/blob/master/services/Cart.php#L18

因为fecshop是通过配置的方式进行的,因此 Yii::$service->cart 不在运行的时候,不知道加载的是那个配置,会造成误解,因此这块不是很好弄。

yii identify1个月前

appserver端的登陆是基于access-token的

参看代码:https://github.com/fecshop/yii2_fecshop/blob/master/services/Customer.php#L644

/** AppServer 部分使用的函数
     * @param $email | String
     * @param $password | String
     * 无状态登录,通过email 和password进行登录
     * 登录成功后,合并购物车,返回accessToken
     * ** 该函数是未登录用户,通过参数进行登录需要执行的函数。
     */
    protected function actionLoginAndGetAccessToken($email, $password)
    {
        $header = Yii::$app->request->getHeaders();
        if (isset($header['access-token']) && $header['access-token']) {
            $accessToken = $header['access-token'];
        }
        // 如果request header中有access-token,则查看这个 access-token 是否有效
        if ($accessToken) {
            $identity = Yii::$app->user->loginByAccessToken($accessToken);
            if ($identity !== null) {
                $access_token_created_at = $identity->access_token_created_at;
                $timeout = Yii::$service->session->timeout;
                if ($access_token_created_at + $timeout > time()) {
                    return $accessToken;
                }
            }
        }
        // 如果上面access-token不存在
        $data = [
            'email'     => $email,
            'password'  => $password,
        ];
        
        if (Yii::$service->customer->login($data)) {
            $identity = Yii::$app->user->identity;
            $identity->generateAccessToken();
            $identity->access_token_created_at = time();
            $identity->save();
            // 执行购物车合并等操作。
            Yii::$service->cart->mergeCartAfterUserLogin();
            $this->setHeaderAccessToken($identity->access_token);
            return $identity->access_token;
        }
    }
yii identify1个月前

用户不存在,则强行注册一个用户,然后登陆?

先说说你的思路,你到底要干什么?

fecshop-缓存问题1个月前

打印对应的值。你打印这个玩意。。。。

fecshop-缓存问题1个月前

分页参数是P,还是page ?

去controller中输出一下,看一下cache key就可以了

移动端着陆页用哪个入口? WAP 还是 appserve呢?1个月前

1.都可以跳转

2.appserver对应的是vue端,前后端分离的手机web类型(需要api),vue是单页面应用类型

3.wap入口和pc入口原理类似,只是模板使用的是html5模板

4.自己取舍

[重写服务] 'Failed to instantiate component or class'2个月前

文件 common\local\local_services\AdminUser.php 不存在吧

讨论贴子浏览量如何统计?2个月前

fecshop论坛的吗?是pv吧

看到某程序的一个函数逻辑,这些的代码读起来,怕不怕?2个月前

脑子内存得大,把这些逻辑一次性放到脑子里面,代码维护很麻烦,估计写这个逻辑的人一个月后读起来也费劲。

这种逻辑,最好是拆分成多个函数依次处理,由大到小拆分。

后台如何刷新单页面2个月前

后台用的DWZ(JUI)框架

参考菜单刷新

<a href="http://fecshop.appadmin.fancyecommerce.com/catalog/productreview/index" target="navTab" rel="page1">Product Reveiew</a>

href 替换掉链接就可以。

访问后台提示You donot have role to visit this controller2个月前

权限,应该是controller继承的付类controller中进行控制的,您看一下源码debug一下吧

访问后台提示You donot have role to visit this controller2个月前

@lingdu #4楼 看截图,你的这个还是老版的fecshop,不是RBAC格式的,因此上面的文档对您可能不对。

老版本的菜单这个部分已经更新了。

您自己debug找下原因把。

访问后台提示You donot have role to visit this controller2个月前

@lingdu #4楼 上面的文档是验证过了的,也有可能是缓存刷新失败

您自己debug一下代码找一下原因吧。

怎么在模块下新增一个Controller或一个block2个月前

不需要的,在controller继承的基类:https://github.com/fecshop/yii2_fecshop/blob/master/app/appfront/modules/AppfrontController.php

    public $blockNamespace;

    /**
     * @param $blockName | String
     * get current block
     * 这个函数的controller中得到block文件,譬如:
     * cms模块的ArticleController的actinIndex()方法中使用$this->getBlock()->getLastData()方法,
     * 对应的是cms/block/article/Index.php里面的getLastData(),
     * 也就是说,这个block文件路径和controller的路径有一定的对应关系
     * 这个思想来自于magento的block。
     */
    public function getBlock($blockName = '')
    {
        if (!$blockName) {
            $blockName = $this->action->id;
        }
        if (!$this->blockNamespace) {
            $this->blockNamespace = Yii::$app->controller->module->blockNamespace;
        }
        if (!$this->blockNamespace) {
            throw new \yii\web\HttpException(406, 'blockNamespace is empty , you should config it in module->blockNamespace or controller blockNamespace ');
        }
        $viewId = $this->id;
        $viewId = str_replace('/', '\\', $viewId);
        $relativeFile = '\\'.$this->blockNamespace;
        $relativeFile .= '\\'.$viewId.'\\'.ucfirst($blockName);
        //查找是否在rewriteMap中存在重写
        $relativeFile = Yii::mapGetName($relativeFile);
        
        return new $relativeFile();
    }

可以看到类变量blockNamespace,这个就是用来设置查找block文件的,如果不填写,那么默认使用的是当前modules的文件路径,您可以设置这个类变量的值。

譬如:

public $blockNamespace = 'fbbcbase\\app\\appadmin\\modules\\Sales\\block';

然后再这个namespaces对应的文件路径中添加block即可

访问后台提示You donot have role to visit this controller2个月前

资源url 需要 / 开头,请检查添加的资源格式是否正确

PHPStudy下安装Fecshop全过程2个月前

@wancq [#61楼](#comment61) 默认帐号密码是 admin admin123 , 请检查是否输入了空格

Your Site Analytics