yy15527726335

yy15527726335

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

  • 财富值35
  • 威望值0
  • 总积分115

个人信息

  • 2018-08-20 已签到
    连续签到1天,获得了5个金钱
  • 试下leftJoin('course' , 'order.goods_id = course.id AND order.type =1')....这种写法。个人想法

  • 赞了回答

    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-07-27 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回答

    datatime不是rule的方法,你想给requestTime添加时间戳,可以在外面做,比如 $model->requestTime = time();
    或者写在rule里, ['requestTime', 'default', 'value' => time()]

    http://www.yiichina.com/doc/guide/2.0/tutorial-core-validators#date
    我是照这里写的
    还有,你这个是给默认值

  • 赞了回答

    看你这贴子,没考虑我们读者的感受。。。

  • 回复了 的回答

    缺少参数 你表单提交RequestTime为空的时候,设置一个默认值吧

    不为空,有值 。再说为空也是先报上面的

  • 回复了 的回答

    你看下你 提交的表单值 RequestTime 是什么时间格式

    这不是一样的吗

助理 等级规则
115/200
资料完整度
10/100
用户活跃度
0/100

Ta的关注

1

Ta的粉丝

1

Ta的访客

4