首页
工具
隐私协议
作品
更多
关于我们
Search
1
FlexboxLayout+recyclerView实现自动换行
1,037 阅读
2
proguard-rules出现unresolved class name
975 阅读
3
onActivityResult过时了,registerForActivityResult使用方法
965 阅读
4
android5遇到INSTALL_FAILED_DEXOPT 解决办法
690 阅读
5
Room数据库Schema export Error
654 阅读
默认分类
mysql
android
android深入
Jetpack Compose
Android传感器
php
Yii2
windows
webrtc
登录
Search
标签搜索
android
kotlin
webrtc
kurento
mysql
nginx
flutter
adb
rsa
微信
git
Yii2
md5
加密
dart
aes
wechat
windows
小程序
dexopt
Kornan
累计撰写
76
篇文章
累计收到
3
条评论
首页
栏目
默认分类
mysql
android
android深入
Jetpack Compose
Android传感器
php
Yii2
windows
webrtc
页面
工具
隐私协议
作品
关于我们
搜索到
2
篇与
Yii2
的结果
2020-11-01
YII2 restful 限流
之前用豆瓣的API时,会有一分钟只能请求40次的限制;通过Yii2来实现这样的限制: public static function tryLimit($key, $prefix, $timeLimit, $tryTimes){ $times = Yii::$app->cache->get($key . $prefix); if (!$times) { $times = 0; } if ($times >= $tryTimes) { //一小时只能获取$tryTimes次 throw new TooManyRequestsHttpException("Too Many Requests"); } else { Yii::$app->cache->set($key . $prefix, $times + 1, $timeLimit); } } public static function controllerLimit($params, $funcName) { foreach ($params as $v) { if ($v['funciton'] == $funcName) { self::tryLimit($v['funciton'], (string)Yii::$app->request->userIP, $v['time_limit'], $v['try_times']); } } }在xxxController加入限制 public function init() { if (in_array(Yii::$app->requestedRoute, [ 'user/info' ])) { //限制IP访问接口次数(60秒访问只能访问40次) self::controllerLimit([ [ 'funciton' => 'user/info', 'time_limit' => 60, 'try_times' => 40, ] ], Yii::$app->requestedRoute); } }
2020年11月01日
263 阅读
0 评论
0 点赞
2020-08-13
Yii2中$model->load(Yii::$app->request->get())一直返回false
使用$model->load()方法时一直返回false,网上找许久,有说是安全问题的,加个参数就可以了,于是:$model->load(Yii::$app->request->get(),true)可还是没有解决,看代码:public function load($data, $formName = null) { $scope = $formName === null ? $this->formName() : $formName; if ($scope === '' && !empty($data)) { $this->setAttributes($data); return true; } elseif (isset($data[$scope])) { $this->setAttributes($data[$scope]); return true; } return false; }load()方法有两个参数,第一个参数 $data 是要填充的数据,第二个参数 $formName 是选择指定的模型。如果第二个参数不传,$formName 会默认为null,默认取当前模型 $this->formName()。如果指定了模型,会将模型名称作为key值,通过 $data[$formName] 取值,也就是这时候应该传的 $data 格式是:$data = [ 'User' => [ 'name' => 'test', 'phone' => '13000000000', 'email' => '
[email protected]
' ] ];如果 $formName 传空字符串,则 $data 传递参数格式为:$data = [ 'name' => 'test', 'phone' => '13000000000', 'email' => '
[email protected]
' ];这时应该用:$model->load($data, '');还有一种解决办法:$model->attributes = $data; // 或者 $model->setAttributes($data);
2020年08月13日
191 阅读
0 评论
0 点赞