簡體   English   中英

Laravel在流明不工作的地方進步了

[英]Laravel advanced where not working in Lumen

我在Lumen中使用Laravel Advanced wheres在MongoDB中進行查詢,並且對Lumen使用jenssegers / laravel-mongodb軟件包,我的查詢是:

$time_5_min_ago = Carbon::now()->subMinute(5);
$time_10_min_ago = Carbon::now()->subMinute(10);
$time_15_min_ago = Carbon::now()->subMinute(15);

return Order::whereBetween('source_longitude', [$minLon_try_one, $maxLon_try_one])
    ->whereBetween('source_latitude',[$minLat_try_one,$maxLat_try_one])
    ->where('status','=','suspend')
    ->where('created_at','<=',$time_5_min_ago)
    ->where('created_at','>=',$time_10_min_ago)
    ->orWhere(function($query) use ($maxLat_try_two,$minLat_try_two,$maxLon_try_two,$minLon_try_two,$time_10_min_ago,$time_15_min_ago)
    {
        $query->whereBetween('source_longitude', [$minLon_try_two, $maxLon_try_two])
        ->whereBetween('source_latitude',[$minLat_try_two,$maxLat_try_two])
        ->where('status','=','suspend')
        ->where('created_at','<=',$time_10_min_ago)
        ->where('created_at','>=',$time_15_min_ago);
    }
    )->get();

但是,當我運行此查詢時,我沒有結果,也不知道如何解決?

我找到了解決方案。 這有效:

    $time_5_min_ago = Carbon::now()->subMinute(5);
    $time_10_min_ago = Carbon::now()->subMinute(10);
    $time_15_min_ago = Carbon::now()->subMinute(15);
    $time_20_min_ago = Carbon::now()->subMinute(20);

    return Order::where(function ($query)  use ($maxLat_try_one,$minLat_try_one,$maxLon_try_one,$minLon_try_one,$time_5_min_ago,$time_10_min_ago) {
        $query->whereBetween('source_longitude', [$minLon_try_one, $maxLon_try_one])
            ->whereBetween('source_latitude', [$minLat_try_one,$maxLat_try_one])
            ->where('status', '=', 'pending')
            ->where('created_at', '<', $time_5_min_ago)
            ->where('created_at', '>=', $time_10_min_ago);
    })->orWhere(function ($query)  use ($maxLat_try_two,$minLat_try_two,$maxLon_try_two,$minLon_try_two,$time_10_min_ago,$time_15_min_ago) {
        $query->whereBetween('source_longitude', [$minLon_try_two, $maxLon_try_two])
            ->whereBetween('source_latitude', [$minLat_try_two,$maxLat_try_two])
            ->where('status', '=', 'pending')
            ->where('created_at', '<', $time_10_min_ago)
            ->where('created_at', '>=', $time_15_min_ago);
    })->orWhere(function ($query)  use ($maxLat_try_three,$minLat_try_three,$maxLon_try_three,$minLon_try_three,$time_15_min_ago,$time_20_min_ago) {
        $query->whereBetween('source_longitude', [$minLon_try_three, $maxLon_try_three])
            ->whereBetween('source_latitude', [$minLat_try_three,$maxLat_try_three])
            ->where('status', '=', 'pending')
            ->where('created_at', '<', $time_15_min_ago)
            ->where('created_at', '>=', $time_20_min_ago);
    })->get($fields);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM