mysql - 在 Laravel 中需要关系数据

标签 mysql laravel

所有 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();

eager loading :

$food = Food::find($foodId);
$foodBenefit = FoodBenefit::where('food_id', $foodId)
                          ->with('benefit', 'benefitRating')
                          ->get();

关于mysql - 在 Laravel 中需要关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763304/

相关文章:

mysql - 字段列表中的未知列 vb.net

java - 如何将带连字符的 mysql 枚举类型映射到 JPA 实体?

mysql - Twitter 主页/Facebook 墙的数据库结构?

mysql - 数据库中的多重连接搜索

mysql - 嵌套外键(多表)

php - 为什么在 PHP 的 laravel 模型类中使用静态方法?

php - 如何在不覆盖任何值的情况下合并两个集合

php - PHP 框架中的 MVC

jquery - JWT token 与 jQuery Ajax

php - 在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 的 Mcrypt