composer方式安装,配置完fecshop/common/config/fecshop_local_services/Store.php后,PC端访问页面正常,但是,左上角语言栏,4个语言选项重复了一遍,变成了8个,请问如何解决
Store.php 采用的安装说明里的内容
看不懂
<?php return [ 'store' => [ 'class' => 'fecshop\services\Store', 'stores' => [ # 数据的key就是域名 'appfront.fecshoptest.com' => [ 'language' => 'en_US', # 语言必须在上面第五步的fecshoplang中定义,否则将无法得到语言属性。 'languageName' => 'English', # 在添加store的时候,必须查看 添加的语言在 fecshoplang中是否定义。 # 定义本地模板路径,用来重写fecshop的模板,或者开发新的模板文件。 //'localThemeDir' => '@appfront/theme/terry/theme01', # 定义第三方模板路径,用来重写fecshop的模板,或者开发新的模板文件。 'thirdThemeDir' => [], # 当前语言的默认货币,货币必须在上面第六步的配置中存在 'currency' => 'USD', 'mobile' => [ # 当设备满足什么条件的时候,进行跳转。 'enable' => true, 'condition' => ['phone','tablet'], # phone 代表手机,tablet代表平板 'redirectUrl' => 'apphtml5.fecshoptest.com', # 如果是移动设备访问进行域名跳转 ], # 第三方账号登录配置 'thirdLogin' => [ 'facebook' =>[ #fb api配置 ,fb可以一个app设置pc和手机两个域名 'facebook_app_id' => '184963', 'facebook_app_secret' => '2e097dd7139', ], "google" => [ #谷歌api visit https://code.google.com/apis/console to generate your google api 'CLIENT_ID' => '38037grhccontent.com', 'CLIENT_SECRET' => 'ei8RaoCHYm0rrwO', ], ] //'image' => [ // 'domain' => 'img.appfront.fancyecommerce.com', // 'baseDir'=> '@appimage/appfront', //] ], 'appfront.fecshoptest.com/fr' => [ 'language' => 'fr_FR', 'languageName' => 'Fran?ais', 'localThemeDir' => '@appfront/theme/terry/theme01', 'thirdThemeDir' => [], 'currency' => 'RMB', 'mobile' => [ 'enable' => true, 'condition' => ['phone'], # phone 代表手机,tablet代表平板。 'redirectDomain' => 'apphtml5.fecshoptest.com/fr', # 跳转后的url。 ], ], 'appfront.fecshoptest.es' => [ 'language' => 'es_ES', 'languageName' => 'Espa?ol', 'localThemeDir' => '@appfront/theme/terry/theme01', 'thirdThemeDir' => [], 'currency' => 'USD', 'mobile' => [ 'enable' => true, 'condition' => ['tablet'], 'redirectDomain' => 'apphtml5.es.fancyecommerce.com', ], ], 'appfront.fecshoptest.com/cn' => [ 'language' => 'zh_CN', 'languageName' => '中文', 'localThemeDir' => '@appfront/theme/terry/theme01', 'thirdThemeDir' => [], 'currency' => 'RMB', 'mobile' => [ 'enable' => false, 'condition' => ['phone','tablet'], 'redirectDomain' => 'apphtml5.fancyecommerce.com/cn', ], ], ], ], ];
Store.php的代码
当出现8个语言的时候
1.在appfront/web/index.php 里面加断点,打印一下
/** * 添加fecshop的服务 ,Yii::$service , 将services的配置添加到这个对象。 * 使用方法:Yii::$service->cms->article; * 上面的例子就是获取cms服务的子服务article。 */ var_dump(['services']['store']['stores']); exit; // 在入口文件的这个位置插入这个代码打印一下 new fecshop\services\Application($config['services']); unset($config['services']);
看看输出结果是否可以你上面的配置的数组一致,如果不一致,是8个(你上面是4个),说明你在其他地方还有一个store的配置被加载了,可以搜索文件内容找找
2.顺藤摸瓜自己普查
数据是@fecshop/app/appfront/widgets/Headers.php
'stores' => Yii::$service->store->getStoresLang(),
这个返回的,打印自己排查
另外,你如果切换到es语言,域名就是:appfront.fecshoptest.es
要确认你配置的域名,在nginx都做了配置。
非常感谢,已解决问题 Store.php文件,在/www/web/develop/fecshop/appfront/config/fecshop_local_services/目录下。 原来出错,是因为,手工在/www/web/develop/fecshop/common/config/fecshop_local_services 创建了Store.php,导致加载了两次。
@rsmove #10楼 加油!