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();
    
  • 相关阅读:
    axios全局配置
    014 Javascript(148
    013 Javascript(134
    axios的基本使用
    axios简介
    012 Javascript(126
    016 HTML+CSS(Class198
    015 HTML+CSS(Class184
    014 HTML+CSS(Class165
    LCA题目选讲2
  • 原文地址:https://www.cnblogs.com/makalochen/p/14171788.html
Copyright © 2011-2022 走看看