首页 > 解决方案 > Laravel 的 SQL 表关系

问题描述

我对 Laravel 相当陌生,过去我的大部分开发时间主要集中在 Codeigniter 上,因为这是我的工作大部分涉及的内容。

我目前正在构建一个客户的网站,同时也在构建一个定制的 CMS(满足客户的经验和特殊需求)。

目前我正在努力弄清楚如何处理 Laravel/Eloquent 中的关系,例如,我有一张products桌子。每个产品都可以有一个type. 我将这些类型存储在一个单独的表中,以便将来在内容开始构建时更好地控制它们。我只需要一个查询来获取所有产品及其相关类型。在其他框架中,我可以简单地使用查询构建器来定义列和连接,但是由于 Eloquent 的工作方式,我正在努力寻找方法!

只是为了一点上下文,在 CMS 中,将有一个产品数据表,它将显示系统中的所有产品,其中一列将是type,但是我想显示类型的名称,而不是id.

可能我很愚蠢,所以请随意指出一些明显的事情!

标签: phplaraveleloquent

解决方案


您正在寻找的是文档中的“Eager Loading”:https ://laravel.com/docs/5.8/eloquent-relationships#eager-loading

在他们在网站上的示例中,您可以用您的“产品”替换他们的“书”,然后用您的“类型”替换他们的“作者”,您将实现您想要做的事情。

如果您想在视图中加载关系,即使用 Blade,您需要执行以下操作:

@foreach($products as $product)
  <div> {{ $product->type->name }} </div>
@endforeach

推荐阅读