laravel - 拉拉维尔 | 如何在类别视图中显示分配给产品的属性
问题描述
我对关系查询有疑问。我的 show.blade.php (类别)中有:
@foreach( $attributes as $attribute)
{{ $attribute->title }}
@endforeach
并在 CategoryController 函数中显示:
$attributes = Attribute::where('visible',1)
->orderBy('order', 'asc')
->with('products')
->get();
我需要显示特定类别的产品属性。显示数据库中所有属性的解决方案。我有 3 个类别,每个类别都有具有自己属性的产品。并非所有属性都属于所有类别。
我的模型关系是:Category 1:n Product N : (pivot product_attribute) : N Attribute
类别 ID 是从视图传递的。我还可以访问特定类别。但是如何显示该类别中产品的属性。你有什么主意吗?
解决方案
假设您在属性和产品模型中正确定义了关系,您可以使用以下查询来获取特定类别的属性
$attributes = Attribute::with(['product.category'])->whereHas('product.category', function($q) use ($categoryId) {
$q->where('id', $categoryId);
})->get();
这里产品是属性模型中定义的关系名称,类别是产品模型中定义的关系名称。id是类别表中的主键字段。
推荐阅读
- android - 在 Android Studio 3.4 中更新到 gradle 5.1.1 后无法同步
- kubernetes - 如何为示例 Istio 应用程序公开外部 IP 地址
- haskell - 通过电子邮件发送文件的虚假目标?
- python - 我怎样才能告诉程序只允许某种类型的输入?
- javascript - AngularJS / Webix UI 集成 - HTML 控件不变
- oracle - 将 ColdFusion 8 连接到 Oracle 12c
- rcpp - 如何从 RCPP 调用 model.matrix 或等效项,可能在线程代码中?
- python - pipenv install 每次都安装依赖项 / Pycharm 无法识别它们
- excel-formula - Excel 中用于聚合数据的逻辑函数
- html - 最小化 iOS 邮件应用程序会破坏 CSS 动画中的 z-index