douba4824 2018-05-15 03:44
浏览 34
已采纳

如何在雄辩的laravel中使用动态的条件?

My working code is

$query = DB::table('order');

    $fromorderdate = $request->get('fromorderdate') or "";
    $toorderdate = $request->get('toorderdate') or "";
    $fromdeliverydate = $request->get('fromdeliverydate') or "";
    $todeliverydate = $request->get('todeliverydate') or "";
    $orderstatus = $request->get('orderstatus') or "";
    $ordertype = $request->get('ordertype') or "";

    if (Input::get('weightrange')) {
        $weightrangearray = explode('.', Input::get('weightrange'));
        $weightrange1 = $weightrangearray[0];
        $weightrange2 = $weightrangearray[1];
    }

    if ($fromorderdate != "" && $toorderdate != "") {

        $query->whereBetween('orderdate', [$fromorderdate, $toorderdate]);
        $makequery = true;

    }
    if ($fromdeliverydate && $todeliverydate) {
        $query->whereBetween('orderdate', [$fromdeliverydate, $todeliverydate]);
        $makequery = true;

    }

    if ($fromdeliverydate && $todeliverydate) {
        $query->whereBetween('orderdate', [$weightrange1, $weightrange2]);
        $makequery = true;

    }
    if ($orderstatus) {
        $query->where('orderstatus', $orderstatus);
        $makequery = true;

    }
    if ($ordertype) {
        $query->where('ordertype', $ordertype);
        $makequery = true;

    }


        echo $query->toSql();
    if ($makequery) {
        $order = $query->get();
    }

This code is working fine but the exact problem is that i cant use eloquent relations on this $order variable.

What i tried $query=new Order();// order is my model name but sql query is not working properly.

is there any way so that i can convert this $orderdb instance to eloquent so that i can use my relations in view.

  • 写回答

1条回答 默认 最新

  • dongzhang7961 2018-05-15 04:36
    关注

    Use when($condition, callback):

    $orders = Order::when($request->has('fromorderdate') && $request->has('toorderdate'), function ($q) use ($request) {
        return $q->whereBetween('orderdate', [$request->fromorderdate, $request->toorderdate]);
    })
    ->when...
    ->get();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度