【发布时间】:2020-04-23 00:46:19
【问题描述】:
我开始使用 Laravel 做一个小项目,所以我的数据库中有三个表
- 产品
- 类别
- 品牌
我想在 HTML 表格中列出我的所有产品,现在我在我的控制器中使用这个方法 leftJoin 是正确的方法,或者我必须用 eloquent 做到这一点,如果是的话怎么给我一个例子
public function index()
{
$query = DB::table('products')
->leftJoin('categories','categories.id', '=', 'products.product_category')
->leftJoin('brands','brands.id', '=', 'products.product_brand')
->leftJoin('suppliers','suppliers.id', '=', 'products.product_supplier')
->orderBy('products.id', 'desc')->paginate(15);
return response()->json($query);
}
这是我的结果:
"data": [
{
"id": null,
"product_name": "Dylan Hernandez",
"product_sell_as": "Delectus pariatur",
"product_upc": 12541,
"product_sku": "12541",
"product_description": "Et enim quisquam ani",
"product_category": 2,
"product_supplier": 2,
"product_buying_price": "390.00",
"product_selling_price": "226.00",
"product_min_stock": "10.00",
"product_max_stock": "10.00",
"product_alert_stock": 10,
"product_alert_phone": "+1 (955) 289-5975",
"product_alert_email": "mexi@mailinator.net",
"product_cost_price": "145.00",
"product_supplier_discount": "10.00",
"product_uom": 2,
"product_brand": 2,
"product_warehouse": 2,
"product_availability": 2,
"product_image": "public/product/tDlkQkCZA4aWDnFkWIed8TKQEP0Wgu0zYGtYfD5T.jpeg",
"deleted_at": null,
"created_at": null,
"updated_at": null,
"category_name": "Shoes",
"brand_name": "Dolce Gabana",
"supplier_company": null,
"supplier_code": null,
"supplier_tax_number": null,
"supplier_phone": null,
"supplier_fax": null,
"supplier_website": null,
"supplier_email": null,
"supplier_note": null,
"supplier_type": null,
"supplier_address": null,
"supplier_city": null,
"supplier_state": null,
"supplier_zip": null,
"supplier_country": null,
"supplier_representative": null,
"supplier_price_list": null,
"supplier_tax_type": null,
"supplier_currency": null
}
]
【问题讨论】:
-
你想要什么样的响应结构?以及它们之间的关系是什么
-
@TsaiKoga 我更新了我的问题;)
-
如果
products和categories是一对多的,而products和brand是一对多的,你可以通过关系来实现。 -
你能举个例子吗,我是 laravel 的新手