500miles

500miles

这家伙有点懒,还没写个性签名!

  • 财富值2470
  • 威望值220
  • 总积分4940

个人信息

  • 先说解决办法, 改成下面的形式 :

    $query = Equip::find()->andFilterWhere(['is_delete' => 0]);
    或者
    $query = Equip::find()->andFilterWhere(['and', ['is_delete' => 0]]);
    

    接下来分析 为什么会出现这么有趣的现象

    is_delete = 1 可以达到预期, 不加这个条件也可以达到预期, 偏偏 is_delete = 0 有问题

    原因是按照你写的那样, 最终生成的sql会是 :

    select * from table where is_delete and 0 (或者1);

    有意思的是, select * from table where fieldName 这样的语句并不会报错.

    我试了下, fieldName 为空, 为null, 为0的时候, 查不到.

    其他时候均能查到, 但是此种情况下, 不会用到索引.

  • 回复了 的回答

    1, $id, $module这2个值谁传进来的 ?

    Module传进来的;

    Module通过路由 or controllerMap得到controllerId, 再把自身传进来, 就实例化出controller了;

    2, 基础版中,没有模块,getModules()方法为什么运行进来,什么时候调用的 ?

    首先 基础版中, 是有模块的, 并且可以嵌套多层;

    Yii本身就是建立在Module的基础上, Yii::$app也是一个Module.

    至于什么时候调用,

    在框架中, 触发controller中的 beforeActionafterAction事件时, 会调用祖宗Module 执行相应的事件.

    对于开发者来说, 你通过controller调用getModules方法 , 或者 访问controllermodules属性时候 就调用了

    你没有controllerMap当然不会执行到这里. 有这个就运行了. 没有的话就按路由实例化controller

  • 回复了 的回答

    1, $id, $module这2个值谁传进来的 ?

    Module传进来的;

    Module通过路由 or controllerMap得到controllerId, 再把自身传进来, 就实例化出controller了;

    2, 基础版中,没有模块,getModules()方法为什么运行进来,什么时候调用的 ?

    首先 基础版中, 是有模块的, 并且可以嵌套多层;

    Yii本身就是建立在Module的基础上, Yii::$app也是一个Module.

    至于什么时候调用,

    在框架中, 触发controller中的 beforeActionafterAction事件时, 会调用祖宗Module 执行相应的事件.

    对于开发者来说, 你通过controller调用getModules方法 , 或者 访问controllermodules属性时候 就调用了

    Yii::createObject($this->controllerMap[$id], [$id, $this]);

    Yii::createObject($className, [$id, $this]);

    这是Yii创建实例的方式, 实现了依赖倒置的设计理念.

    具体的实现在 \yii\di\ServiceLocator\yii\di\Container 以及辅助的\yii\di\Instance

  • 应该是不会自动带上 x-csrf-token 这个头信息的吧.

    你遇到的过 不带 的情况, 都是一样的请求方式么?

    都是自己手写的ajax? 而不是用的框架带的js库(比如 yii.activeForm.js)里面的方法发起的请求?

    如果方便的话 请提供多一些信息.

  • 回复了 的回复

    确实是这个原因,把bower-asset中的文件都移到bower 就好了,不知道什么原因造成的。

    我之前遇到这个情况, 把composer版本升级到 1.0.0-alpha11 (2015-11-14) 就可以了. 目前都没有比这个版本更新的了. 当然有一个snapshot , 不过没人用吧...搞不懂 composer为什么一直是alpha版本

  • 1, $id, $module这2个值谁传进来的 ?

    Module传进来的;

    Module通过路由 or controllerMap得到controllerId, 再把自身传进来, 就实例化出controller了;

    2, 基础版中,没有模块,getModules()方法为什么运行进来,什么时候调用的 ?

    首先 基础版中, 是有模块的, 并且可以嵌套多层;

    Yii本身就是建立在Module的基础上, Yii::$app也是一个Module.

    至于什么时候调用,

    在框架中, 触发controller中的 beforeActionafterAction事件时, 会调用祖宗Module 执行相应的事件.

    对于开发者来说, 你通过controller调用getModules方法 , 或者 访问controllermodules属性时候 就调用了

  • yii在渲染你配置的itemView视图时, 把变量传入的, 具体方式也是通过render

    想了解具体方式 请看yii\widgets\ListView

  • 在开发api吧? 定义了响应json格式吧? 估计八成是的, 是的话请往下看.

    原因:

    echo "hello";的时候, 直接塞进缓冲区, 最后返回给客户端, yii不会参与处理.

    return "hello";的时候, yii框架会在最后响应的时候, 做一个json的格式化处理.

    既然选择了使用json格式, 带引号就是正确的方式.

  • 回复了 的回答

    这个事情 如果要做的很到位 很不容易 应该能算一个专业的课题了 : 舆情监控

    最常见的 比如 : x你老m f(ck 等.... 随便变个花样 都很难搞

    简而言之

    如果只要求定位到关键词列表, 不用那么复杂 用php内置函数足矣

    如果要求严格 做C扩展吧 要涉及很多复杂的算法 不简单 之前看过一篇介绍相关算法的文章 : http://www.cnblogs.com/sumtec/archive/2008/02/01/1061742.html

    我试了一下 长度1500的字符串 用stripos 循环查10000次, 每次循环查找三个长度为10的词 总的执行时间只有 0.37秒左右 用正则大概是0.44秒左右

  • 回复了 的回答

    这个事情 如果要做的很到位 很不容易 应该能算一个专业的课题了 : 舆情监控

    最常见的 比如 : x你老m f(ck 等.... 随便变个花样 都很难搞

    简而言之

    如果只要求定位到关键词列表, 不用那么复杂 用php内置函数足矣

    如果要求严格 做C扩展吧 要涉及很多复杂的算法 不简单 之前看过一篇介绍相关算法的文章 : http://www.cnblogs.com/sumtec/archive/2008/02/01/1061742.html

    既然是繁忙的社区, 估计帖子大多几十字, 甚至几个字, 几百上千字的估计少数 几千字的可能更少... 我觉得完全没问题

总监 等级规则
4940/5000
资料完整度
30/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

15

Ta的访客

42