php - Laravel 的 SQL 表关系
问题描述
我对 Laravel 相当陌生,过去我的大部分开发时间主要集中在 Codeigniter 上,因为这是我的工作大部分涉及的内容。
我目前正在构建一个客户的网站,同时也在构建一个定制的 CMS(满足客户的经验和特殊需求)。
目前我正在努力弄清楚如何处理 Laravel/Eloquent 中的关系,例如,我有一张products
桌子。每个产品都可以有一个type
. 我将这些类型存储在一个单独的表中,以便将来在内容开始构建时更好地控制它们。我只需要一个查询来获取所有产品及其相关类型。在其他框架中,我可以简单地使用查询构建器来定义列和连接,但是由于 Eloquent 的工作方式,我正在努力寻找方法!
只是为了一点上下文,在 CMS 中,将有一个产品数据表,它将显示系统中的所有产品,其中一列将是type
,但是我想显示类型的名称,而不是id
.
可能我很愚蠢,所以请随意指出一些明显的事情!
解决方案
您正在寻找的是文档中的“Eager Loading”:https ://laravel.com/docs/5.8/eloquent-relationships#eager-loading
在他们在网站上的示例中,您可以用您的“产品”替换他们的“书”,然后用您的“类型”替换他们的“作者”,您将实现您想要做的事情。
如果您想在视图中加载关系,即使用 Blade,您需要执行以下操作:
@foreach($products as $product)
<div> {{ $product->type->name }} </div>
@endforeach
推荐阅读
- mysql - 如何将值添加到 SQL 查询的列?
- python - Python json 模块没有属性“哑”
- android - 是否可以在android上添加没有高程的阴影或没有阴影的高程?
- node.js - 在 Heroku 调度程序中插入 bash 命令
- java - 比较日期以查找匹配的年份和月份
- node.js - 使用命令“npm install -g @vapid/cli”通过终端安装 Vapid CMS 时出现问题
- python - 获取 Just-Eat 的形式
- javascript - 错误:无法读取未定义的属性“状态”
- javascript - 使用 JavaScript 构建 HTML 数据列表在 FireFox 中有效,但在 Chrome 中结果不正确
- javascript - 用于匹配 URL 的第一个实例的正则表达式