多个加入Laravel

时间:2017-08-14 16:04:27

标签: php mysql laravel laravel-5

我需要进行两次连接,但是有很多条件,我有这个

    $matchThese = [ 'suspended' => 0, 'status' => 1, 'approved' => 1 ];

    $matchOther = [ 'status' => 1, 'approved' => 0 ];

    $deals = ListsDeals::where( $matchThese )->where('stock', '>', 0)->orwhere( $matchOther )->whereDate('end_date', '>', date('Y-m-d'))->limit( 4 )->offset( 0 )->orderBy( 'start_date' )->get();

    $deals_lists = DB::table('deals')
                ->join( 'list_has_deals', 'deals.id', '=', 'list_has_deals.deal_id'  )
                ->join( 'lists', 'list_has_deals.list_id', '=', 'lists.id' )
                ->paginate( 10 );

我需要一个带有两个vars的唯一查询,在第一个var中选择所有与'WHERES'的交易,然后再进行连接,问候。

1 个答案:

答案 0 :(得分:2)

我认为这可以解决问题:

$query = ListsDeals::where( $matchThese )->where('stock', '>', 0)->orwhere( $matchOther )->whereDate('end_date', '>', date('Y-m-d'))->limit( 4 )->offset( 0 )->orderBy( 'start_date' );

$results = $query->join( 'list_has_deals', 'deals.id', '=', 'list_has_deals.deal_id'  )
            ->join( 'lists', 'list_has_deals.list_id', '=', 'lists.id' )
            ->paginate( 10 );