鍍金池/ 問答/PHP  Linux  數(shù)據(jù)庫  Office/ laravel orm where條件查詢怎么寫?

laravel orm where條件查詢怎么寫?

如代碼所示,如果只是沒有pay_time的話,數(shù)據(jù)正常取出,但是加了pay_time大于的判斷就沒有數(shù)據(jù)了,肯定是寫法不對,請問這種情況下,要怎么寫?
$where['pay_time'] = array('gt',"2017-11-03");
$where['shop_id'] = $shop_id;
$where['pay_status'] = 1;
$orders = order::where($where)->orderBy('order_id', 'desc')->orderBy('pay_time', 'desc')->paginate(50);

回答
編輯回答
兮顏

where('shop_id',$shop_id)->where('pay_status',1)->where('pay_time','>','2017-11-03')

2018年4月26日 01:02
編輯回答
選擇

你使用 PHPStorm IDE 追蹤 where() 方法的源碼實現(xiàn),會發(fā)現(xiàn)在 Laravel 內(nèi)部 Query\Builder.php 比較條件是通過 = > < 等符號來做條件判斷的,而不是像 TP 一樣有 lt gt 的用法。把你的 gt 換為 >,語句這樣寫:


$orders = order::where([
    ['pay_time', '>', '2017-11-03'],
    ['shop_id', $shop_id],
    ['pay_status', 1]
])->orderBy('order_id', 'desc')->orderBy('pay_time', 'desc')->paginate(50);

2017年1月15日 11:07
編輯回答
胭脂淚
$where = [
    ['shop_id', '=', $shop_id],
    ['pay_status', '=', 1],
    ['pay_time', '>', '2017-11-03'],
];
2017年12月23日 10:06