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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM