加入foreach laravel查询

时间:2017-06-14 18:23:18

标签: php mysql laravel laravel-5 laravel-5.3

我有这个

public function deals(){

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

    $deals = ListsDeals::where( $matchThese )->orderBy( 'start_date' )->get();

    $list = DB::table( 'lists' )
        ->join( 'list_has_deals', 'lists.id', '=', 'list_has_deals.list_id' )
        ->where( 'list_has_deals.deal_id', '=',  12)
        ->select( 'lists.id' )
        ->get();

    $categories = DB::table( 'lists_categories' )
        ->join( 'list_has_categories', 'lists_categories.id', '=', 'list_has_categories.category_id' )
        ->where( 'list_has_categories.list_id', '=', $list[0]->id )
        ->select( 'lists_categories.title' )
        ->get();

    return view( "deals" )
            ->with( "deals", $deals )
            ->with( "categories", $categories );

}

我想获取列表中类别的标题值,但首先我需要用更少的单词获取列表的交易

我有

Deals - Lists - lists_has_deals

Categories - Lists - lists_has_deals

两者都是belongsToMany,我想在交易中获得属于与要约相关联的列表的类别。

在我的例子中,工作正常,但12需要成为$ deal的foreach而不是静态数字,谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

尝试在lists_has_deals上使用包含多个直通或中间数据透视表。如果我理解您的问题,列表应该对交易和类别都有必要的参考。

https://laravel.com/docs/5.4/eloquent-relationships#has-many-through

https://laravel.com/docs/5.4/eloquent-relationships#many-to-many 特别是与Pivot()