我有这个
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而不是静态数字,谢谢你的帮助。
答案 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()