在laravel中联接多个表

在laravel中联接多个表,laravel,Laravel,我需要左连接laravel中的三个表。我在两个表中为id指定了相同的名称以进行连接,但我没有得到正确的输出。我没有得到整个id值,只是得到了连接的id $products = DB::table('categories') ->leftjoin('subcategories', 'categories.category_id', '=', 'subcategories.category_id') ->leftjoin('products', 'prod

我需要左连接laravel中的三个表。我在两个表中为id指定了相同的名称以进行连接,但我没有得到正确的输出。我没有得到整个id值,只是得到了连接的id

$products = DB::table('categories')
        ->leftjoin('subcategories', 'categories.category_id', '=', 'subcategories.category_id')
        ->leftjoin('products', 'products.subcat_id', '=', 'subcategories.subcat_id')
        ->get()->toArray();

Ouput

id  Category    Subcategory   Product
1   Lunch       Chinese       noodles
1   Lunch       Chinese       pizza
2   Breakfast   Indian        dosa
2   Breakfast   Indian        idly
    Dinner      
    Meals       
    xyz 

您应该使用select like

$products = DB::table('categories')
    ->leftjoin('subcategories', 'categories.category_id', '=', 'subcategories.category_id')
    ->leftjoin('products', 'products.subcat_id', '=', 'subcategories.subcat_id')
    ->select('products.id as productId', 'categories.id as categoriesId', 'subcategories.id as subCategoryId', 'categories.Category as Category', 'categories.Subcategory as Subcategory', 'product.name as product')
    ->get()->toArray();

如果你想获得所有的产品,我建议你首先使用产品模型,在快速加载中,你应该获得所有其他的关系值。

为什么不尝试使用laravel与模型的关系?