鉴于网上相关资料不多,纯研究了下怎么实现SQLite的upsert的功能。

最终,查到利用冲突的类似的代码:

INSERT OR IGNORE INTO visits VALUES ($ip, 0);
UPDATE visits SET hits = hits + 1 WHERE[......]

阅读全文

最近有个奇葩需求,需要使用到通配符搜索的功能,Yii框架没有太明确的实现,所以自己测试了下,总结出来。

示例代码:

$query['function_score']['query']['bool']['must'][] = [
'wildcard' => [

阅读全文

用Yii2框架的时候,guzzleHttp的request时,如下catch:

} catch (Exception $exception) {

这样catch的刷,如果请求异常,是会直接终止的。正确的catch方式应当使用:

} catch (GuzzleHttp\Except[......]

阅读全文

Yii2框架的Menu导航生成器如何加入class呢?其实这个你跟进到源码看一下或者查下手册应该是能看到相关参数的,这里就直接丢出个示例代码吧:

如果要给li标签加class:

['label'=>'Home', 'url&apos[......]

阅读全文

查询是不区分大小写的,但是返回的字段可是区分的,有奇葩要求,强制字段名最小化,放到Yii2里如何实现呢?其实很简单,改下驱动配置,给数据库加个参数即可。

原始数据库配置示例:

<?php
return [
'class' => '[......]

阅读全文

用过这框架的都知道,API默认是用减号分隔的。然而,有个需求必须要用大写的驼峰实现,接口示例:

http://127.0.0.1/Test/SearchContent

要实现的话,怎么整?对我而言……硬上撒~

改两个框架中的文件:

vendor/yiisoft/yii2[......]

阅读全文

接手搜索引擎后,最近调优系统发现一个方法执行特别慢。仔细梳理后发现,这方法从MongoDB索引全量数据到Elasticsearch,而实际上,接口使用根本用不到全量数据,能用到1W就算是极限了。
最关键的是,分页多次索引,一次处理10条数据……简直ZZ……

调整了下方案,只索引点击[……]

阅读全文

最近同事调整mongo,加入了鉴权。结果设置到yii2里就一直报错:“Authentication failed.”。

后来发现,必须要指定对应的库,才能通过鉴权,于是顺藤摸瓜,找到了原因:
帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。

参考资料:[……]

阅读全文