vishun
感觉更多的作者个人习惯。用了很多的外键约束来保证同步更新(不支持外键约束的也做了特别的处理)。好处是在某些情况下不需要连表查询id对应的名称?或者楼上说的看起来更直观?
同遇到这个问题,解决方法是增加pjax加载后的js处理:
$(document).on('pjax:complete', function() { var el=$('#delete_type');//这个是input框id id = el.attr('id'); var settings = el.attr('data-krajee-select2'); settings = window[settings]; $.when(el.select2(settings)).done(initS2Loading(id));//新版本是initS2Loading这个名字 })
垃圾代码,你不用的就是垃圾吗?那辛苦写这些代码的会怎么想?真没必要在这里展示你的优越感!
挺不错的,但是$removed是不能去掉的,否则只等于一次,直接就return true了,而原代码可能会删除好多个。而且多次array_splice会比array_values高吗?并不一定吧。
foreach (self::$_events[$name][$class] as $i => $event){ if($event[0] === $handler){ array_splice(self::$_events[$name][$class], $i, 1); return true;//直接就跳出了 } } return false;
- vishun 2017-07-26 已签到连续签到1天,获得了5个金钱
可以用这种方法:
$url=Yii::$app->request->referrer;//上次请求,也可以是随便的url $arr = parse_url($url, PHP_URL_QUERY);//只取?后的 parse_str($arr, $output);//将其转为数组
$output
就是类似的$_GET
这个貌似在gridview
用pjax
来删除时可以用到。- vishun 赞了回答
首先配置一下缓存,自己选择是用文件缓存还是数据库缓存等。
'cache' => [ 'class' => 'yii\caching\FileCache', ],
然后就可以通过
Yii::$app->cache->set()
和Yii::$app->cache->get()
设置、获取缓存内容了。
下面是一个带缓存依赖的实例://表达式依赖 $dp = new ExpressionDependency([ 'expression' => 'count(Yii::$app->authManager->getPermissionsByUser(Yii::$app->user->id))' ]); //数据库依赖(sql) $dp2 = new DbDependency([ 'sql' => 'select max(updated_at) from auth_item', ]); //链式依赖(把以上2个依赖串起来,任何一个发生变化都会使缓存失效) Yii::$app->cache->set($key, $value, 0, new ChainedDependency([ 'dependencies' => [$dp, $dp2] ]));
不可能直接修改vendor中的内容,到时候composer一更新岂不是没有了,可以在配置中:
return [ // ... 'components' => [ 'assetManager' => [ 'assetMap' => [ 'AdminLTE.min.css' => '@web/css/AdminLTE.min.css', ], ], ], ];
重新拷贝一份文件放到其它目录,加载时自动替换掉。
参考:官方文档