• epiiAdmin框架注意事项


    1,epiiAdmin文档地址: 

    简介/安装 · EpiiAdmin中文文档 · 看云

    2,项目性想新建模块

    composer.json文件——autoload选项——psr-4下增加模块名称,然后执行composer update命令。

    1. "autoload": {
    2. "psr-4": {
    3. "app\\": "app/",
    4. "api\\": "api/",
    5. "libs\\": "libs/",
    6. "init\\":"init/"
    7. }
    8. }
    3,点击左侧菜单提示‘模块没有安装’如图:

    原因:这是因为runtime下没有模块配置缓存的原因

    解决方法:左侧菜单找到拓展中心->应用列表,随便打开一下某个模块的配置按钮更新缓存即可解决

    4,新增api模块无法使用数据库Db类进行数据库操作

    解决方法:api.php入口文件引入databaseInit类,初始化数据库配置项,如下代码:

    1. \epii\server\App::getInstance()->init(\init\example::class)->setBaseNameSpace("api")
    2. ->init(\libs\init\databaseInit::class)
    3. ->run();

     databseInit类:

    1. namespace libs\init;
    2. use epii\orm\Db;
    3. use epii\server\i\IRun;
    4. use epii\server\Response;
    5. use epii\server\Tools;
    6. class databaseInit implements IRun
    7. {
    8. public function run()
    9. {
    10. if (file_exists($db_config = Tools::getVendorDir() . "/../config/db.conf.php")) {
    11. $config = include $db_config;
    12. $config["schema_path"] = Tools::getRuntimeDirectory() . "/cache/filed_cache/";
    13. Db::setConfig($config);
    14. } else {
    15. Response::error($db_config . " is not find!");
    16. }
    17. }
    18. }
    5,上传图片改为上传到存储桶

    composer安装storage_php_sdk:composer require wslibs/storage_php_sdk

     模块入口文件引入配置文件

    1. \epii\admin\center\App::getInstance()
    2. ->init(\init\example::class)->init(\libs\init\uploadInit::class)
    3. ->setBaseNameSpace("app")->run();

     配置文件类:

    1. namespace libs\init;
    2. use epii\server\i\IRun;
    3. use wslibs\storage_php_sdk\StorageManager;
    4. class uploadInit implements IRun
    5. {
    6. public function run()
    7. {
    8. StorageManager::storage_init(100,"d65fd571714d7111111111115");
    9. }
    10. }

     前端正常使用上传组件即可

    5,补充:上传图片到云端:undefined

    报错如图:

    解决方法:

    • 将上传到云端存储的url改为https
    • 修改路径:verder>wslibs>storage_php_sdk>src>StorageManager.php
    • 如图:

     5补充:广告轮播模块上传图片成功后,图片展示地址为空

    问题如图:

    解决方法:

    • 修改add_edit.php 文件中的upload_success方法,在类选择器中增加img元素选择器
    • 路径:vendor>kjx>ad>view>adList>add_edit.php

     代码改为:

    6,将富文本编辑器wangEditor中的上传图片改为上传到存储桶

    前端js代码:

    1. //自定义上传图片
    2. editor.config.customUploadImg = function (resultFiles, insertImgFn) {
    3. $.ajax({
    4. url: '?app=uploadApi@upload&_upload_yun=1',
    5. type: 'post',
    6. dataType: 'json',
    7. success: function (res) {
    8. console.log("看看结果",res);
    9. var formData = new FormData();
    10. //formData.append("token", res.data.token);
    11. formData.append("task_id", res.data.task_id);
    12. // var files = resultFiles[0];
    13. formData.append("file", resultFiles[0]);
    14. // for(i=0;i
    15. // formData.append("file["+i+"]", files[i]);
    16. // }
    17. var url='http://file.wszx.cc/index.php/storage/index/token/'+res.data.token
    18. $.ajax({
    19. url: url,
    20. //url: 'http://test.storage.com/index.php/storage/index',
    21. dataType: 'json',
    22. type: 'POST',
    23. data: formData,
    24. processData: false, // 使数据不做处理
    25. contentType: false, // 不要设置Content-Type请求头
    26. success: function (data) {
    27. console.log(data);
    28. insertImgFn(data.url);
    29. },
    30. error: function (response) {
    31. console.log(response);
    32. }
    33. });
    34. }
    35. })
    36. };
     6,补充: wangEditor 中上传图片undefined

    解决方法:

    • 将上传url改为https
    • 路径:view>news_articles>add.php或者 vender>wslibs>news>view>articles>add.php找到自定义上传图片
    • 如图

    6补充:wangEditor 加载静态js,css文件路径失败

     解决办法:

    • 在article控制器中搜索类属性【static_url_pre这是控制静态文件路径的父类属性
    • 在article类中重写该属性
    1. private $static_url_pre;
    2. public function __construct(){
    3. $this->static_url_pre = Tools::get_web_root()."addons_static/";
    4. }

    7,数据表格开关可点击修改状态

    重点:data-on-change 方法对应请求状态修改方法

    例如: 

    "status" data-formatter="epiiFormatter.switch" data-on-change-url="?app=bb_type@status&id={id}">状态
    
    8,如何解决composer update时候 php版本依赖问题

    解决方法:

    • vender--->composer--->platform_check.php
    • 将下图中注释的那张注释掉

     

     9,当配置的域名带端口时,登录后端口号丢失导致无法跳转进入管理系统
    •  将该域名配置到项目目录下config.josn中的login_success_url字段,没有文件自己创建文件

    config.json文件内容:

    {"login_success_url":"https://cabb.wszx.cc:8443/"}

    入口文件中引入初始化文件:

    \epii\admin\center\ProjectConfig::_setLoginPageConfig(new \libs\init\LoginPageConfigInit());

    入口文件内容:

    1. /**
    2. * Created by PhpStorm.
    3. * User: mrren
    4. * Date: 2019/1/15
    5. * Time: 1:05 PM
    6. */
    7. namespace libs\init;
    8. use epii\admin\center\config\LoginPageConfig;
    9. use epii\admin\center\config\Settings;
    10. use epii\admin\center\libs\Tools;
    11. use epii\server\Args;
    12. class LoginPageConfigInit extends LoginPageConfig
    13. {
    14. public function getConfigs(): array
    15. {
    16. //这里修改的登录跳转
    17. $successurl = Args::configVal("login_success_url");
    18. $config = ["success_url" => $successurl?$successurl:Tools::get_web_root()];
    19. $allset = Settings::get();
    20. foreach ($allset as $key => $value) {
    21. if(stripos($key,"app.login.")===0){
    22. $config[str_replace("app.login.","",$key)] = $value;
    23. }
    24. }
    25. if(isset($config["bg_imgs"]) && $config["bg_imgs"]){
    26. $config["bg_imgs"] = explode(",", $config["bg_imgs"]);
    27. }
    28. return $config;
    29. }
    30. }

  • 相关阅读:
    js Fetch返回数据res.json()报错问题
    小米发布会:雷军成长故事与创新壮举,AI大模型技术引领未来,雷军探索之路之从创业波折到小米AI领航,成就高端化传奇!
    如何创建项目变更管理流程?
    jvm 自带调优工具一览
    HIVE消费者画像
    SQL语句中 left join 后用 on 还是 where
    最速下降法
    ESP Matter on ESP32H2
    Python 操作 Excel,如何又快又好?
    机器学习服务文本翻译能力升级,中文直译模型让译文表达更地道!
  • 原文地址:https://blog.csdn.net/zhouchang111/article/details/133857152