Lavarel bind参数丢失

来源:互联网 发布:尔雅网络通识课程 编辑:程序博客网 时间:2024/06/06 23:16

项目中一次使用bind时,遇到bind参数丢失的情况,这种记录一下。


$params = array_merge($this->default_params, $params);        $prefix = DB::getTablePrefix();        $sql = DB::table('order')->whereRaw("periods_id = {$prefix}periods.id and user_id = {$prefix}periods.user_id")->select([DB::raw('SUM(pg_order.num)')])->toSql();        $sql2 = DB::table('order')->selectRaw("SUM(num) as num,periods_id,max(create_at)as create_at,MAX(user_id)as user_id")->where('order.user_id', '=', $this->user->id)->groupBy('periods_id')            ->orderBy("create_at", 'desc')->forPage($params['page'], $params['page_size'])            ->toSql();        $order = DB::table(DB::raw("({$sql2}) as pg_f"))->addBinding($this->user->id) //添加bind参数            ->leftJoin('periods', 'f.periods_id', '=', 'periods.id')            ->leftJoin('goods', 'periods.goods_id', '=', 'goods.id')            ->leftJoin('user', 'periods.user_id', '=', 'user.id')//            ->whereIn('periods.status', $params['status_list'])            ->select([                'f.num',                'f.periods_id',                'user.nickname',                'periods.create_at',                'periods.lucky_code',                'periods.goods_id',                'periods.user_id',                'periods.periods',                'periods.buy',                'periods.total',                'periods.lottery_at',                'periods.lottery_show_at',                'periods.status',                'goods.title',                'goods.icon',                DB::raw("({$sql}) as num2")])        // $d = DB::table('order')->getBindings(); //查看bind参数            ->get();

$sql2中bind 的$this->user->id参数在获取$order时获取不到。即getBindings时返回为空。addBinding添加一个新的bind参数。

0 0
原创粉丝点击