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();
    
  • 相关阅读:
    计算机的运算方法
    干货 Elasticsearch 知识点整理 一
    深入理解 Spring finishBeanFactoryInitialization
    Git 学习笔记
    深入理解 Mybatis
    深入理解 MyBatis 启动流程
    MyBatis 开发手册
    深入理解SpringMvc 启动流程
    深度长文回顾web基础组件
    快速排序
  • 原文地址:https://www.cnblogs.com/makalochen/p/14171788.html
Copyright © 2011-2022 走看看