strive

strive

皮肤光滑不长痘,零食吃遍不长肉

  • 财富值20777
  • 威望值40
  • 总积分26847

个人信息

  • 赞了说说
    你别说,红眼哈士奇改这个样式我竟然习惯了。呸,狗管理
  • 赞了回答

    orderBy() 用错了。

    public function orderBy($columns)
    {
        // 注意这里是直接赋值
        $this->orderBy = $this->normalizeOrderBy($columns);
        return $this;
    }
    

    https://github.com/yiisoft/yii2/blob/master/framework/db/QueryTrait.php#L323

    从上面的代码可以看出, orderBy() 不能像 andWhere() 那样使用链式操作,你的写法会导致第一个 orderBy() 被覆盖。正确的写法:

    ->orderBy([
        'FIND_IN_SET(`a`, `attr`)' => SORT_DESC, // SORT_DESC 是 PHP 内置常量
        'date' => SORT_DESC,
    ])
    

    Tip:如果查询语句返回的结果与自己期望的不相符,可以借助 yii\db\CommandrawSql 属性返回原生的 SQL 语句,通过 SQL 语句判断构建的 ActiveQuery 是否有问题。拿你遇到的这个问题来说,当你发现文章的排序有问题后,首先可以做的就是使用:

    echo Article::find()
        ->select(...)
        ->where((...))
        ->orderBy((...))
        ->orderBy((...))
    
        ->createCommand()->rawSql;
    

    返回 SQL 语句,看看构建的语句是否存在问题。一看 SQL 中 order by 从句是 order by date DESC, 就会立刻意识到问题出在 orderBy() 那里了。

  • 2018-08-04 已签到
    连续签到83天,获得了20个金钱
  • 赞了说说
    app主题随着手机壳颜色更换能有多难? 😕 把产品打一顿不就好了吗? 🤣
  • 赞了说说
    早上起来打开窗,心情美美哒😄
  • 赞了说说
    “情若能自控,要心有何用。” If love can control itself, what is the use of heart ​​​​
  • 赞了说说
    我这里在下雨,是你在哭么?但是我不敢去你那里安慰你。我怕我安慰不了你,却抱着你一起哭。
  • 赞了回答
    Yii::$app->getModule('user')->getControllerPath()
    

    通过获取模块下的控制器文件,来取到所有控制器的名称。

  • 赞了回答

    Yii::$app->view->params['key'] 赋值全局通用。

副董事长 等级规则
26847/50000
资料完整度
70/100
用户活跃度
60/100

Ta的关注

338

Ta的粉丝

340

Ta的访客

922