商情云 | php学习 | wampserver | 宝塔面板 | fastadmin框架 | JS学习

宝塔面板
相关配置文件位置
D:\hc\baota
处理函数被禁用问题

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

问题:wampserver图标变橙了
解决:wampserver三个服务分别是Apache、PHP、MySQL,变红说明三个服务都没开启,如果变橙的话说明三个服务没有都开起来,我当时的情况是橙色,但是访问localhost正常,于是怀疑是mysql的问题,解决方法:在命令面板输入services.msc,找到MYSQL服务,右键停止,然后右下角wampserver重启所有服务,然后他就绿了
图文详解在windows及wampserver环境下安装composer,并通过composer安装thinkphp5
https://blog.csdn.net/piaolingjijie/article/details/79121249
https://blog.csdn.net/weixin_37706042/article/details/111661348

php
文件结构

在这里插入图片描述
在这里插入图片描述

Thinkphp

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

initialize方法

在这里插入图片描述

PHP ->和::
class Fruit
{
    protected function showColor() {
        echo "Fruit::showColor()\n";
    }
}
class Apple extends Fruit

{
    // Override parent's definition
    public function showColor()
    {
        // But still call the parent function
        parent::showColor();
        echo "Apple::showColor()\n";
    }
    const CONST_VALUE = 'Fruit Color';
}

// ->可以访问(新实例化)对象的成员
$apple = new Apple();
$apple->showColor();

// ::操作符即作用域限定操作符可以访问静态、const和类中重写的属性与方法
echo Apple::CONST_VALUE;
右上角提示框
Backend.api.toastr.success('test_succ');
前置方法

在这里插入图片描述

跳转

在这里插入图片描述
在这里插入图片描述

空方法 空控制器

在这里插入图片描述

前端模板变量输出使用函数

在这里插入图片描述

// Table.api.formatter.image方法源码位置
// C:\Users\EDZ\Desktop\business_cloud_web\public\assets\js\require-table.js
// 单元格图片预览
image: {
    'click .img-center': function (e, value, row, index) {
        var data = [];
        value = value === null ? '' : value.toString();
        var arr = value != '' ? value.split(",") : [];
        $.each(arr, function (index, value) {
            data.push({
                src: Fast.api.cdnurl(value),
            });
        });
        Layer.photos({
            photos: {
                "start": $(this).parent().index(),
                "data": data
            },
            anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
        });
    },
}
表格字段排序处理思路
其实在点击上下排序的箭头的时候,是发送一个请求的,我们只要在后台捕捉这个请求并进行相应的处理即可
正测试环境 | 缓存 | 版本号

在这里插入图片描述
在这里插入图片描述

从数据库取数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型建立 对应规则

在这里插入图片描述
在这里插入图片描述

获取器

在这里插入图片描述
在这里插入图片描述

修改器

在这里插入图片描述

css页面布局

在这里插入图片描述

fastadmin框架学习
数据库字段说明
https://doc.fastadmin.net/doc/database.html
名字大小写规则

在这里插入图片描述
在这里插入图片描述

PHP $this self
// self调用的是类,而$this调用的则是实例化的对象
// 可以用self调用:类 || 静态的变量 || 静态的方法(因为静态的东西一直都是在类里面)
// 可以用$this调用:对象
php处理网址传输特殊字符问题(TP5 | 编码解码)
 $req_url = $this->request->url();
 $word = explode('word/',$req_url); // 处理网页编码解码的问题
 $word = explode('/',$word[1])[0];
 $word = urldecode($word);
PHP数组切片
$sort_data_result = array_slice($sort_data_result,0,10);

在这里插入图片描述

新增页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

控制器

在这里插入图片描述

解除email验证
1对前端的修改

在这里插入图片描述
在这里插入图片描述

表格打开通用搜功能

在这里插入图片描述

关联查询
https://ask.fastadmin.net/question/6867.html(参考)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2对后端的修改

在这里插入图片描述

绑定用户名和nickname一样

在这里插入图片描述

默认选项修改

在这里插入图片描述
在这里插入图片描述

鉴权和登录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

表格隐藏操作栏

在这里插入图片描述

数据限制

在这里插入图片描述
在这里插入图片描述

bootstrapTable自定义按钮
https://ask.fastadmin.net/article/12478.html
fast图片的弹出效果

在这里插入图片描述

fastadmin 队列说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

队列测试

在这里插入图片描述

队列大坑

在这里插入图片描述

从数据库中取数

在这里插入图片描述

echart页面调节

在这里插入图片描述

fastadmin获取从后端传给服务端分页的表格的数据
table.on('load-success.bs.table',function (e,data){ // 获取服务端分页从后台传来的数据
    console.log('table-data')
    console.log(data)
})
视图

在这里插入图片描述
在这里插入图片描述

表格中字段变成可点击并打开新弹窗的字段

在这里插入图片描述

表格中的图片渲染功能效果

在这里插入图片描述

PHP变量边遍历边存储

在这里插入图片描述

在iframe里面用原生js好像是比较好定位在这里插入图片描述
fast默认访问数据库配置(这两个地方都会影响访问的数据库配置)

在这里插入图片描述

数据传输

在这里插入图片描述

下拉动态分页选择框

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

彩色词云

在这里插入图片描述

前端页面布局
.col-xs- 超小屏幕 手机 (<768px)
.col-sm- 小屏幕 平板 (≥768px)
.col-md- 中等屏幕 桌面显示器 (≥992px)
.col-lg- 大屏幕 大桌面显示器 (≥1200px)

在这里插入图片描述

在这里插入图片描述

词云中的点击事件

在这里插入图片描述

fastadmin前端class的不同效果

在这里插入图片描述

fastadmin表格的配置

在这里插入图片描述

fastadmin客户端分页不成功的原因

在这里插入图片描述

打开新的页面并设置JS

在这里插入图片描述

后端的各种返回数据方式

在这里插入图片描述

后端往前端传值

在这里插入图片描述

操作Mongo直接find拿不到值,findOne可拿到(可直接toArray转换)

在这里插入图片描述
在这里插入图片描述

PHP数组操作

在这里插入图片描述

PHP处理’MongoDB\Driver\Manager’ not found
原因是PHP的mongodb拓展没装好,参考https://blog.csdn.net/weixin_42814467/article/details/104616287解决(Tis:在完成上述步骤后,要重启服务器生效)
Thinkphp中的assign() 和 display()
https://blog.csdn.net/class__fun/article/details/78171299

在这里插入图片描述

fastadmin引入Vue–容易漏掉的

在这里插入图片描述

PHP关联数组根据某字段进行排序
public static function desc_data_bykeyword($need_deal_array, $keyword)
{
    $tempArr = array();
    foreach($need_deal_array as $key=>$v){
        $tempArr[$key][$keyword] = $v[$keyword];
    }
    // SORT_ASC升序排序,SORT_DESC降序排序,array_multisort是php的排序函数
    array_multisort($tempArr,SORT_DESC,$need_deal_array); 
    return $need_deal_array;
}
JS学习
var echart1 = document.getElementById('echart1'); // 获取元素
var div_new = document.getElementById('echart1').getElementsByTagName('div')[2];

var div_new = document.createElement('div'); // 创建节点
div_new.innerText = '888'; // 设置元素的文本内容
div_new.style.cssText = "position: absolute; display: block"; // 设置节点的css样式
var append_result = echart1.appendChild(div_new); // 将新建的节点插入某节点
// 获取鼠标在图表中的实时位置
$(document).ready(function () {
    $(document.getElementById(tag_id)).mousemove(function (e) {
        console.log(e.pageX + ", " + e.pageY);
        // 获取元素长度
        var echart1_div_length = document.getElementById('echart1').getElementsByTagName('div').length;
    })
})
PHP 发送格式为 application/json 请求头要求的请求
方案一
public static function json_post($url, $data = NULL)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    if(!$data){
        return 'data is null';
    }
    if(is_array($data))
    {
        $data = json_encode($data);
    }
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_HTTPHEADER,array(
        'Content-Type: application/json; charset=utf-8',
        'Content-Length:' . strlen($data),
        'Cache-Control: no-cache',
        'Pragma: no-cache'
    ));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $res = curl_exec($curl);
    $errorno = curl_errno($curl);
    if ($errorno) {
        return $errorno;
    }
    curl_close($curl);
    return $res;

}

方案二
// 获取特征关键词
public static function get_keyword($params){
    $url = "http://106.13.197.241:8888/comment/lac";
    $curl = new ExtendedCurl();
    return $curl->post($url,$params,1);
}
public function post($url, $data = array(), $json_encode = false)
{
    $options = array(
        CURLOPT_URL => $url,
        CURLOPT_POST => 1,
    );
    if (!empty($data)) {
        if ($this->isMultiPart($data) || is_string($data)) {
            $options[CURLOPT_POSTFIELDS] = $data;
        } else {
            if ($json_encode) {
                $data = json_encode($data);
                $options[CURLOPT_POSTFIELDS] = $data;
                $options[CURLOPT_HTTPHEADER] = array(
                    'Content-Type: application/json; charset=utf-8',
                    'Content-Length:' . strlen($data),
                    'Cache-Control: no-cache',
                    'Pragma: no-cache'
                );
            } else {
                $options[CURLOPT_POSTFIELDS] = http_build_query($data);
            }

        }
    }
    return $this->request($options);
}
PHP json转数组(json_decode) || 对数据进行JSON编码(json_encode)
$get_shop_id = $MarketBrandShopList_model->where('shop_name',$kg)->field("shop_id")->find();
json_decode($get_shop_id,true)

//json_encode
$book = array('a'=>'lzichun','b'=>'nihao','c'=>'wohenhao','d'=>'ljlong');
$json = json_encode($book);
echo $json;
//打印出的结果
{"a":"lzichun","b":"nihao","c":"wohenhao","d":"ljlong"}

//json_decode
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
        $json = json_encode($book);
        // 为TRUE时返回数组,FALSE时返回对象(默认FALSE)
        $array = json_decode($json,TRUE);
        $obj = json_decode($json);
        var_dump($array);
        var_dump($obj);
        
//打印出的结果
array(4) {
  'a' =>
  string(7) "xiyouji"
  'b' =>
  string(6) "sanguo"
  'c' =>
  string(6) "shuihu"
  'd' =>
  string(11) "hongloumeng"
}

class stdClass#1 (4) {
  public $a =>
  string(7) "xiyouji"
  public $b =>
  string(6) "sanguo"
  public $c =>
  string(6) "shuihu"
  public $d =>
  string(11) "hongloumeng"
}
// 两个结果看起来没多大区别,但调用里面的元素时,array和obj的方式是不同的。
var_dump($array['b']);//调用数组元素
echo '<br/>';
var_dump($obj->c);//调用对象元素

//打印出的结果
string(6) "sanguo"
string(6) "shuihu" 
商情云队列处理 更新 | 测试
xshell连上测试环境
cd /
cd data/www/business_cloud_tp 切换到商情云的项目位置
git pull 拉取最新的代码
cd /
cd bin 切换到supervisorctl所在的目录
supervisorctl status all 查看所有任务的状态
supervisorctl restart kb_queue 单独重启某任务
// 在本地如何测试
phpstorm上的Terminal上执行php think queue:work --daemon(该指令是没有指定监控什么队列的,默认会监控default队列-即下图)

在这里插入图片描述

通过添加参数php think queue:work --daemon --queue kb 可以指定监控kb队列,关于队列的命名生成:

在这里插入图片描述

怎么上测试的superviosr
http://172.16.100.110:9001/?message=Log%20for%20queue%20cleared

连上测试的linux
cd etc
vim supervisord.conf
O
即可看到账号密码

在这里插入图片描述

fastadmin 开启定时任务
文档https://www.kancloud.cn/manual/thinkphp5/235129
1 新增任务类

在这里插入图片描述

1.1 这个时候可以测试一波

在这里插入图片描述

2 配置command

在这里插入图片描述

3 在linux的crontab上配置定时任务

在这里插入图片描述

搜索功能

在这里插入图片描述
在这里插入图片描述

json字符串转json
// 当该参数为 TRUE 时,将返回 array 而非 object 。
$res_json = json_decode($res,true);
fastadmin添加菜单(底层添加在这)

在这里插入图片描述

这个fastadmin后台的相关配置位置

在这里插入图片描述

fast的url路径 | 路由

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

命名空间

于我理解:命名空间就像是相对于现实的文件结构目录的另一份按照自己需要去添加的虚拟目录

在这里插入图片描述
在这里插入图片描述

所以命名空间可以不拘束与现实的文件结构,按需设置根目录的虚拟目录,至于根目录的注册/定义,以及目录的别名,可以看https://www.kancloud.cn/manual/thinkphp5/118014

配置优先级 加载顺序

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

商情云是怎么在正测试环境自动切换连接的数据库–>有不同的.env配置文件即可

在这里插入图片描述

fastadmin 后端变量调试

 $blog = Db::name('blog')->where('id', 3)->find();
 
 Debug::dump($blog);
 // 下面的用法是等效的
 dump($blog);
输出效果:
array(12) {
   ["id"]            => string(1) "3"
   ["name"]          => string(0) ""
   ["user_id"]       => string(1) "0"
   ["cate_id"]       => string(1) "0"
   ["title"]         => string(4) "test"
   ["content"]       => string(4) "test"
   ["create_time"]   => string(1) "0"
   ["update_time"]   => string(1) "0"
   ["status"]        => string(1) "0"
   ["read_count"]    => string(1) "0"
   ["comment_count"] => string(1) "0"
   ["tags"]          => string(0) ""
}

在这里插入图片描述
在这里插入图片描述

商情云的配置覆盖问题

之前我一直在想一个问题,为什么同一份代码在测试环境上会请求233,但在正式环境下会请求224。我是百思不得其解,后来来发现,原来是存在env里,env会覆盖config.php的配置

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值