所有 laravel 伙伴,如果你能帮助我,请帮帮我。我有 DB 作为 PostgreSQL。我有四个表如下:
食物:身份证、姓名
好处:身份证、姓名
Benefit_rating: id, name
Food_benefit: Id, food_id,Benefit_id,Benefit_rating_id
当食物的 ID 已知时我需要一个查询,它从 Food 中获取食物名称 (Food.name) 并列出所有食物的好处 (benefit_rating.name) 及其评级 (Benefit_rating.name)。
现在,了解 Food_benefit 包含食物、福利和与食物相关的福利等级之间的关系。
我不能有多对多的关系,因为数据透视表就是这样设计的[不能改变设计]。
有什么原始查询之类的建议吗?
最佳答案
我假设您正在使用 Eloquent 并且已经定义了模型之间的关系。
您可以使用 nested eager loading :
$food = Food::where('id', $foodId)
->with('foodBenefits.benefitRating', 'foodBenefits.benefit')
->first();
$food = Food::find($foodId);
$foodBenefit = FoodBenefit::where('food_id', $foodId)
->with('benefit', 'benefitRating')
->get();
关于mysql - 在 Laravel 中需要关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763304/