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);

    }
}

那么就是在你的视野中安排一下了