Yii2 Query Where

https://blog.csdn.net/hzqghost/article/details/44117081

where('status=1')->
where('status=:status', [':status' => $status])->
where([
    'status' => 10,
    'type' => null,
    'id' => [4, 8, 15],
])->
-------
$userQuery = (new Query())->select('id')->from('user');
// ...WHERE `id` IN (SELECT `id` FROM `user`)
$query->...->where(['id' => $userQuery])->...
--------
['and', 'id=1', 'id=2'] //id=1 AND id=2
['and', 'type=1', ['or', 'id=1', 'id=2']] //type=1 AND (id=1 OR id=2)
['between', 'id', 1, 10] //id BETWEEN 1 AND 10
['not between', 'id', 1, 10] //not id BETWEEN 1 AND 10
['in', 'id', [1, 2, 3]] //id IN (1, 2, 3)
['not in', 'id', [1, 2, 3]] //not id IN (1, 2, 3)
['like', 'name', 'tester'] //name LIKE '%tester%'
['like', 'name', ['test', 'sample']] //name LIKE '%test%' AND name LIKE '%sample%'
['not like', 'name', ['or', 'test', 'sample']] //not name LIKE '%test%' OR not name LIKE '%sample%'
['exists','id', $userQuery] //EXISTS (sub-query) | not exists
['>', 'age', 10] //age>10

什么是JSONP以及Javascript九种跨域方式实现原理

JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的 script 元素是一个例外。利用 script 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

九种跨域方式实现原理

https://mp.weixin.qq.com/s/HxJI0q_5_nqf-tKX2pz1FQ

Yii2 disable Jquery Asset

在项目中经常碰到前端组件需要使用的jQuery版本较低,而yii2集成的JqueryAsset里的jQuery版本较高,只能手动引入自己需要的jQuery。但是发现无论怎么禁用JqueryAsset仍然被重复使用,导致页面的jQuery重复加载,而且版本不同,自然是不行的。

方法1:打开yii的debug条,找到是哪个页面引用的JqueryAsset,去掉就好,如果是官方引用,不好直接修改,使用方法2

方法2:在config.php的components段,添加如下代码即可全局禁用JqueryAsset

'assetManager' => [
    'bundles' => [
        'yii\web\JqueryAsset' => [
            'sourcePath' => null,
            'js' => [],
        ],
    ],
],

吐槽一下官方的JqueryAsset加载的是未压缩过的jquery,综上,还是建议禁用后手动引入自己需要的jQuery.

增长黑客

增长黑客是一大块类容,留下来慢慢看!

1. 增长案例研究 小程序 抓取5W数据,解密「原价收+1.5折卖」的二手书小程序 http://growthbox.net/growthhack/3115/

爬了20万数据,我们深扒了风口上的「享物说」http://growthbox.net/growthhack/3022/

如何“微创新”一个微信小游戏?http://growthbox.net/growthhack/2746/

深挖一篇100000+鸡汤文,解读电商小程序月入千万的秘密!http://growthbox.net/growthhack/678/

10个页面的网站,吸引2万个精准客户!这种策略适用于小程序吗?http://growthbox.net/growthhack/661/

电商 10个月时间,CMO如何挽救这家破产的电商巨头? http://growthbox.net/growthhack/712/

Supreme如何从一家滑板店成为价值10亿美金的顶级潮牌 http://growthbox.net/growthhack/680/

跨境电商案例分析:Daniel Wellington如何从3万美元做到2.28亿? http://growthbox.net/growthhack/588/

世界杯“华帝”退款营销:稳赚不赔的对冲方案 http://growthbox.net/growthhack/2175/

凭什么一张办公椅能卖一万元?Herman Miller告诉你答案 http://growthbox.net/growthhack/709/

为什么特斯拉没有CMO和广告营销预算 http://growthbox.net/growthhack/2256/

金融 深度分析:加密货币如何靠营销实现“指数级增长”?http://growthbox.net/growthhack/818/

交易所“罗宾侠”的增长之谜:产品没上线,百万人预定! http://growthbox.net/growthhack/1793/

一篇6450字的广告,如何开启1.8万亿美金的华尔街传奇? http://growthbox.net/growthhack/1380/

如何靠“放贷”做到百亿身价:复盘Kabbage.com的增长营销策略 http://growthbox.net/growthhack/1619/

教育 霸榜世界第一的在线教育App,靠什么增长到3亿用户 http://growthbox.net/growthhack/2644/

创客案例 一位增长黑客的创业史:Google挖掘细分市场,冷启动赚得百万美金 http://growthbox.net/growthhack/686/

增长黑客的创业指南:2个人在星巴克办公,1年后入账百万美金 http://growthbox.net/growthhack/671/

一件印满F**k You的西装,让他一星期赚了23000美金 http://growthbox.net/growthhack/644/

裸辞创业,睡地下室,这位程序员默默建造出10亿美元的商业帝国 http://growthbox.net/growthhack/560/

3天赚800美金后,一位程序员感叹:卖T恤比卖app还要赚钱! http://growthbox.net/growthhack/528/

专访95后增长黑客:仅用6小时开发歌词创作神器,火到了rap圈 http://growthbox.net/growthhack/674/

2. 我们的创业故事 人若无名,专心增长 http://growthbox.net/growthhack/701/

如何用增长黑客思维从0到1做一个公众号? http://growthbox.net/growthhack/1237/

两个人,零预算,如何用增长黑客思维去创业 http://growthbox.net/growthhack/2202/ 让人上瘾的增长黑客社区-MVP版 http://growthbox.net/growthhack/764/

顺势而为,逆势增长 http://growthbox.net/growthhack/4139/

3. 增长攻略 如何系统化挖掘增长策略:商业逆向工程导论 http://growthbox.net/growthhack/3750/

盘点2018年最热门的10大增长黑客策略 http://growthbox.net/growthhack/3894/

盘点2017年最热门的10个增长黑客策略 http://growthbox.net/growthhack/695/

想学习增长黑客?你一定要避开这6大误区(附12个案例) http://growthbox.net/growthhack/1906/ 携程遭炮轰的背后:“黑暗模式”正在成为互联网产品增长的潜规则 http://growthbox.net/growthhack/666/

4. 增长实验 【增长实验】千聊微课刷屏的背后,有一个神秘的因子:K=6.58 http://growthbox.net/growthhack/749/

【增长实验】实测新世相裂变数据和病毒系数K http://growthbox.net/growthhack/908/

【增长实验】为了追热点,我们花6小时策划了一场微信裂变 http://growthbox.net/growthhack/2451/

【增长实验】裂变一定要刷屏才好吗? http://growthbox.net/growthhack/2547/

5. 增长工具箱 人才招聘 如何用“增长黑客”思维招募到一名“增长黑客” http://growthbox.net/growthhack/688/

增长黑客招聘板块开始测试 http://growthbox.net/growthhack/3968/

平均年薪30万的增长岗位,到底在招什么人? http://growthbox.net/growthhack/2706/

增长书籍 入门增长黑客应该读哪几本 http://growthbox.net/growthhack/2095/

45张PPT解读硅谷增长黑客做什么 http://growthbox.net/growthhack/2114/

《增长黑客实战》读书笔记-上篇 http://growthbox.net/growthhack/476/

《增长黑客实战》读书笔记-中篇 http://growthbox.net/growthhack/511/ 《增长黑客实战》读书笔记-下篇 http://growthbox.net/growthhack/559/

《购买按钮要用绿色的》读书笔记 http://growthbox.net/growthhack/562/ 增长工具 10分钟搭建你的云端微信机器人 http://growthbox.net/growthhack/3204/

国内首个增长黑客技能百科(内测) https://learn.growthhackers.com.cn/ 微信体系内最热门的20款增长黑客工具【2018版】 http://growthbox.net/growthhack/2042/

零代码基础的自动化电商-海外版-上篇 http://growthbox.net/growthhack/536/ 零代码基础的自动化电商-海外版-中篇 http://growthbox.net/growthhack/539/

零代码基础的自动化电商-海外版-下篇 http://growthbox.net/growthhack/572/

增长黑客新闻和彩蛋研究 增长黑客和程序员沟通指南:避开这8个坑爹瞬间 http://growthbox.net/growthhack/3415/

我们吧30位增长黑客“关”了2小时,脑暴了5套增长方案 http://growthbox.net/growthhack/2850/ 面向95后的营销和增长,你需要知道这些( ゜- ゜)つロ 乾杯 http://growthbox.net/growthhack/2298/

薛定谔的蛙儿子:每一次旅行,都是一次坍塌 http://growthbox.net/growthhack/710/

如何用增长黑客思维在“绝地求生”里吃更多的鸡 http://growthbox.net/growthhack/687/ 你的浏览器正在悄悄为别人赚钱 http://growthbox.net/growthhack/691/

比BAT运营还厉害的,是鹿晗、杨超越、TFBOYS的应援团 http://growthbox.net/growthhack/674/

陆奇加入的Y Combinator到底是什么来头? http://growthbox.net/growthhack/2585/

内容来至增长黑盒,欢迎大家关注增长黑盒,国内一流!

php_network_getaddresses: getaddrinfo failed: Name or service not known

PHP使用file_get_contents(‘ https://api.weixin.qq.com/xxx’)拉取微信接口数据时报错!

file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known

主机是阿里云的,难不成连通性还有问题。网上搜寻一番,有两个解决方案。

1、修改服务器的DNS;(未测试)

2、改用 curl() 调用接口。

记一次微信小程序上传图片的坑

用过年的时间,开开心心规划好我的小程序路线图,完成第一版开发,准备真机测试后提交审核。

Day 1.

真机测试时发现一个奇怪的问题,iPhone无法上传图片,但是在真机调试模式下又能上传,简直是要疯了有木有!

刚开始以为是把wx.request()封装成Promise有问题,不断的debug呀,手动改成async/await,结果连安卓机都无法上传了。这回放心了,可以慢慢调试了。

过程中不断的咒骂,函数式编程就是TM的坑,不好调试。

无意间发现小程序后台的开发菜单下可以查看到小程序的报错信息,欣喜若狂,不到1分钟,发现都是之前已经修复了的错误。之后就不断的改代码,上传,测试,查看小程序后台的报错日志,结果一直没有错误。就这样,折腾了一天。

Day 2.

继续按照昨天的思路呀,希望看到有错误,结果还是没有。

气就气在调试模式能上传成功,关闭调试模式就歇菜,还不报错,一度怀疑腾讯小程序不好搞啊有没有!

既然看不到错误,我怎么知道执行到哪了呢,通过界面状态,一步步定位到卡停的位置了。

……在 Promise() 执行后的 catch() 中,仅仅 console.log() 了以下,关闭调试模式自然是看不到的,又不能alert(),肿么办?只能上报错误日志到后台了。

uploadFile:fail url not in domain list

看到后台(不是官方的后台了)记录的日志如上,拍大腿呀!一万只羊驼崩腾而过,我的两天时间啊,抽自己!!!

原因总结

  • 开发工具里关闭了业务域名校验功能,这很正常,开发时一般都不校验。
  • 由于第一次做小程序,只配置了request域名,其他的几个都没配置。导致正式环境无法上传文件。
  • 正式环境肯定就不是调试环境,自然看不到日志,一直在这里调试,自以为是Promise的锅,以为是小程序团队的锅。

避坑指南

新申请的小程序填写开发信息时一次性填写完整,不要只填一个 request 合法域名就算了,因为开始时不校验域名,后面的 download/upload 合法域名没填,就给自己挖好了坑。

提交审核小程序之前小程序内一定要有内容,否则一定不会通过!

以后碰到问题肯定是自己的原因,函数式编程很好,小程序很好!😆

谨以此文纪念我浪费的两天时间!

js过滤数组中的空元素

const arr = [false, ”, undefined, ‘js’];

console.log(arr.filter(item => item)); // [‘js’]

有点类似PHP的array_filter()函数。

参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

微信小程序报错:ReferenceError: regeneratorRuntime is not defined

这是因为在小程序代码中使用了 async awit 等 es7 中才有的方法,现在小程序还不支持es7, 需要手动引入regeneratorRuntime这个运行时。

直接下载https://github.com/facebook/regenerator/blob/master/packages/regenerator-runtime/runtime.js (22.8KB)

然后将此访问放入小程序的资源目录里,例如:utils/

然后在使用到 async awit的js文件中引入该组件即可。

import regeneratorRuntime from ‘utils/runtime.js’;

不建议使用npm来安装regenerator,因为会导致小程序构建时文件太大。