首页 > 解决方案 > 在 laravel 中加入多个表

问题描述

我需要在 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 

标签: laravel

解决方案


你应该使用选择喜欢,

$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();

如果您想获得所有产品,我建议您首先使用产品模型,并且在急切加载时您应该获得所有其他关系值。


推荐阅读