董俊俊 的个人动态
  • 董俊俊 回答了问题
    5个月前

    tp 使用路由访问时总是不成功

    resume/:id 你这不后面还需要一个参数嘛,如果参数是可选的,那就改成 resume/[:id] 。

  • 董俊俊 回答了问题
    5个月前

    vue请求本地后台接口提示跨域怎么办?

    http://localhost 和 http://localhost:8080 这是不同域。

    协议、主机、端口,三者全都一样才叫同域。有一个不一样就是跨域。

    不知道你这个后台是啥写的,找一下对应语言或框架支持 CORS 的写法吧。

    看报错信息应该是处理 OPTIONS 请求时没能正确返回 Access-Control-Allow-Origin 这个响应头导致的。

    一般来说返回通配符 * 可以。但如果你这个接口还会接收 Cookie,那就必须返回请求者所处的域(对于你这里而言就是 http://localhost),而不能用 *

    你说的昨天正常今天不正常,看一下是不是今天多了 Cookie?

  • 董俊俊 回答了问题
    5个月前

    sequelize的findAll如何用?

    传空不就相当于没 where 条件么,可不就返回所有结果了么……

    你可以给 myId 强行赋一个数据库不会存在的值,比如 0 啥的, { where: { id: myId || 0 } }


    补充回答:

    我只是给个侵入性最小的方案而已,基本没啥改动、还能保留了返回结果的强类型。

    如果从工程角度出发的话确实 @糟老头 是对的,应该做一层封装。

  • 董俊俊 回答了问题
    5个月前

    Datatables ajax返回的数据顺序与表格中的数据顺序不一致

    解决了吗?我今天遇到一模一样的问题..
    更新:额.加入bSort:false就可以了

  • 董俊俊 回答了问题
    5个月前

    Golang 不确定传参

    类似的问题我回答过好几次了,这个问题真的是经常有人问啊。

    对于 json 格式数据的解析,如果其中的某个成员结构不确定,我总结一般有几种方式处理。

    第一种,最容易想到的就是,将那个不确定的成员用 map[string]interface{} 替代。其他人的回答都提到了,怎么操作就不赘述了。但问题是,这种方式太坑,每次都要做类型断言,还要检查一次是否 ok,真的是太坑。

    第二种,既然 map[string]interface{} 的方式太坑,那如果要是能用结构体就好了,虽然其中某个成员的结构不确定,但如果共性字段比较多,比如都是与人相关,那肯定都有名字,年龄之类的字段,但如果是教师和学生,就会有一些不同的字段,把所有的不同字段都包含进来即可。但如果不同字段太多,那也不是很方便。

    第三种,终极解决方案,如果能先解析第一层的结构,再根据第一层的结果,确定第二层的结构,那就方便多了。不确定的成员依然用 map[string]interface{} 表示,确定结构后,再将 map[string]interface{} 解析为具体的某个结构。结构体使用起来就方便很多了。

    问题最终就变成了如何将 map[string]interface{} 转化为 struct,这个过程必然会用到反射,可以自己实现。但其他人早造就想到了,一个第三方库,地址:https://github.com/mitchellh/... 。

    之前写过一篇文章,和这个问题相关,建议去看看,Go 中实例演示 json 的 map 和 struct 便捷处理转化,里面简单介绍了 mapstructure 的使用。

  • 董俊俊 回答了问题
    5个月前

    laravel的blade模板如何生成静态化页面?

    解析开始是由__toString()触发的

    解析过程中是用ob_start实现的,使用了很多次ob_start

    你可以看下Illuminate\View\View这个类

    也可以调用Illuminate\View\View__toString()方法来生成静态页面,如下:

    <?php
    $htmlStrings = view('viewPath')->__toString();

    对于laravel 5(4应该也差不多)

  • 董俊俊 发布了文章
    5个月前

    如何选择 Laravel 框架版本

    说明 很久以前在一个话题里面聊到的观点,很多同学在 Laravel 版本选择时候比较混淆,这里说下我的看法。 对 Laravel 框架发布周期不熟悉的同学请参阅 -&nbsp;Lara
  • 董俊俊 回答了问题
    5个月前

    前后端分离,前端如何判断登录状态?

    我那时候做项目,前后端分离用的是 JWT,把后端生成的 JWT token 存入 localStorage,然后前端切换路由(刷新页面)的时候,通过 Ajax 去后端判断当前的 token 是否有效,还有一个就是在发送Ajax 请求的时候带上这个 token。

  • 董俊俊 回答了问题
    5个月前

    PHP和vue做前后端分离,登录状态怎么记录。

    登录成功之后你返回前端一个加密的字符串token, 把这个token对应的值写入redis 后续前端的请求都要携带这个token 后端做判断即可

  • 董俊俊 回答了问题
    5个月前

    PHP和vue做前后端分离,登录状态怎么记录。

    1. Vue请求php登陆,验证通过之后,PHP返回一个token的JSON,可以使用JWT来做,Vue拿到这个Token存储在localStorage
    2. Vue请求登陆后的接口时,在请求头放入第1步的token
    3. PHP读取请求头,使用JWT解出数据
  • 董俊俊 回答了问题
    5个月前

    在浏览器的cosole控制台输入一段代码,能把页面的dom元素用不同的线标示出来,就是border

    <script>
        (function() { 
            const style = document.getElementById('outlineStyle'); 
            if (style) { 
                style.parentNode.removeChild(style); 
            } else { 
                const style = document.createElement('style'); 
                style.innerText = '* {outline: 1px solid red}'; 
                style.id = 'outlineStyle'; 
                document.head.appendChild(style); 
            } 
        })();
    </script>

    新建一个书签,将上面的代码代码作为网址保存.
    点击书签打开调试模式,再次点击关闭.

    不要用上面的那位的代码,性能差,dom多可能会卡顿.而且用border会导致盒模型扩大,使页面变形.

  • 董俊俊 收藏了文章
    5个月前

    [学习笔记] Laravel消息通知流程梳理

    当我进行对一个帖子回复评论的时候,经过路由到达 reply 评论控制器下的 store 方法,这个方法接收数据进行保存。 保存完成后,事件观察器启动 created 方法启动,这个观察器接收
  • 董俊俊 发布了文章
    5个月前

    [学习笔记] Laravel消息通知流程梳理

    当我进行对一个帖子回复评论的时候,经过路由到达 reply 评论控制器下的 store 方法,这个方法接收数据进行保存。 保存完成后,事件观察器启动 created 方法启动,这个观察器接收
  • 董俊俊 点赞了文章
    5个月前

    把 if-else 的代码风格改成表格驱动法的意义

    表格驱动的意义在于:逻辑和数据分离。 我来分析一下在项目中的现实意义: 在程序中,添加数据和逻辑的方式是不一样的,成本也是不一样的。简单的说,数据的添加是非常简单,低成本和低风险的;而逻辑
  • 董俊俊 发布了文章
    5个月前

    把 if-else 的代码风格改成表格驱动法的意义

    表格驱动的意义在于:逻辑和数据分离。 我来分析一下在项目中的现实意义: 在程序中,添加数据和逻辑的方式是不一样的,成本也是不一样的。简单的说,数据的添加是非常简单,低成本和低风险的;而逻辑
  • 董俊俊 关注了用户
    5个月前
    小花花
    小花花

    这家伙太懒,懒得介绍自己~~~

  • 董俊俊 回答了问题
    5个月前

    如何正确使用redis队列处理php秒杀并发问题?

    我是这么干的。
    比如你有1000个秒杀商品
    设计就这样,

    大家到等待秒杀的页面,点击秒杀按钮,然后ajax请求一个api接口,这个接口的核心代码就是

    $number = $redis->incr($key);
    if ($number > 1000) {
        return '抢光了';
    } else {
        $_SESSION['flag'] = 1;
        return redirect('跳转到下一个页面');
    }

    这样抢到的人就可以在下个页面慢吞吞的填写资料,没抢到的人就可以在当前页面死心。

最近访客
  • 小花花
    小花花 3个月前