laravel - 在 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
解决方案
你应该使用选择喜欢,
$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();
如果您想获得所有产品,我建议您首先使用产品模型,并且在急切加载时您应该获得所有其他关系值。
推荐阅读
- rust - 如何定位我的 Rust 应用程序及其对 musl 的依赖项?
- mysql - Laravel 范围在加入数据透视表时返回多个元素
- python-3.x - TypeError:格式字符串的参数不足。谁能帮我
- javascript - 打印表单时隐藏表单中的字段
- angular - 将服务注入 Angular 中的类:为什么它是反模式,我有哪些替代方案?
- bamboo - 如何在不克隆的情况下为不同的部署使用相同的 Bamboo 部署项目结构
- objective-c - 设置属性文本后 UITextView 文本颜色不会重置
- raspberry-pi - realvnc raspberry pi 许可(远程连接登录)
- java - 作为 Gradlew 任务运行时,Mockito Spring 测试失败
- python - 在 Python 中避免全局变量