zoukankan      html  css  js  c++  java
  • tp5.1 关联条件查询haswhere 用field限制字段失效的问题

    如果你模型中使用haswhere 查询之后再用field限制字段你会发现完全失效,查询出的字段包含所有值

    如:

    错误写法

    $data = PayOrderModel::hasWhere('user', ['id'=>$this->USER->id])
        ->field('order_title,order_number,order_price,pay_type,actual_price,pay_time')
        ->where('status', ['=',2], ['=',4], 'or')
        ->order('id','desc')
        ->limit($start,$limit)
        ->select();
    

    那正确写法是什么呢?

    正确的应该是在haswhere的第三个参数中写入要限制的字段

    需要注意的是,限制完了后如果两个模型存在相同的字段需要加上表名前缀或模型名前缀

    推荐使用模型名的方式

    $data = PayOrderModel::hasWhere('user', ['id'=>$this->USER->id], 'order_title,order_number,order_price,pay_type,actual_price,pay_time')
        //->field('order_title,order_number,order_price,pay_type,actual_price,pay_time')
        ->where('status', ['=',2], ['=',4], 'or')
        //->order('id','desc')
        //下面这两种方式任选一种
        //使用表名
        //->order('pay_order.id','desc')
        //使用模型名
        ->order('PayOrderModel.id','desc')
        ->limit($start,$limit)
        ->select();
    
  • 相关阅读:
    JavaScript字面量
    JavaScript一元运算符、二元运算符和三元运算符
    JavaScript变量声明与变量声明提前
    JavaScript作用域链
    JavaScript变量污染
    语法糖
    JavaScript包装对象
    JavaScript全局变量与局部变量
    JavaScript标识符
    JS函数命名规范
  • 原文地址:https://www.cnblogs.com/makalochen/p/14171788.html
Copyright © 2011-2022 走看看