Laravel 在视图中旋转数据
Laravel pivoting data in a view
我有以下两个table:
Items
id
name
Values
id
item_id
value_date
value
Items 的关系是 hasMany(Value::class),Values 的关系是 belongsTo(Item::class)。我想在视图中显示这样的数据:
--------------------------------------------------------------------
| Item Name 1 | Item Name 2 | Item Name 3 | Item Name 3 |
--------------------------------------------------------------------
01/01/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/02/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/03/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/04/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/05/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
我想我需要添加以下枢轴 table 来完成此操作:
Dates
id
date
item_id
value_id
但我的问题是如何获取项目名称来构建 header 行?我是不是把这个复杂化了?
如果您有多对多关系,则需要一个枢轴 table,但此处不是这种情况。
您可以使用 eager loading:
// Get ALL the Items, with their Values, ordered by Values.date
$items = Items::with(['values' => function ($query) {
$query->orderBy('date', 'asc');
}])->get();
foreach ($items as $item) {
// Item data
var_dump($item->id);
var_dump($item->name);
// Values data (per Item)
foreach ($item->values as $value) {
var_dump($value->value);
var_dump($value->date);
}
}
那么就是在你的视野中安排一下了
我有以下两个table:
Items
id
name
Values
id
item_id
value_date
value
Items 的关系是 hasMany(Value::class),Values 的关系是 belongsTo(Item::class)。我想在视图中显示这样的数据:
--------------------------------------------------------------------
| Item Name 1 | Item Name 2 | Item Name 3 | Item Name 3 |
--------------------------------------------------------------------
01/01/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/02/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/03/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/04/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
01/05/2017 | Value | Value | Value | Value |
--------------------------------------------------------------------
我想我需要添加以下枢轴 table 来完成此操作:
Dates
id
date
item_id
value_id
但我的问题是如何获取项目名称来构建 header 行?我是不是把这个复杂化了?
如果您有多对多关系,则需要一个枢轴 table,但此处不是这种情况。
您可以使用 eager loading:
// Get ALL the Items, with their Values, ordered by Values.date
$items = Items::with(['values' => function ($query) {
$query->orderBy('date', 'asc');
}])->get();
foreach ($items as $item) {
// Item data
var_dump($item->id);
var_dump($item->name);
// Values data (per Item)
foreach ($item->values as $value) {
var_dump($value->value);
var_dump($value->date);
}
}
那么就是在你的视野中安排一下了