繁体   English   中英

Laravel在视图中透视数据

[英]Laravel pivoting data in a view

我有以下两个表:

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

我想我需要添加以下数据透视表来完成此任务:

Dates
    id
    date
    item_id
    value_id

但我的问题是如何获取Item名称来构建标题行? 我复杂化了吗?

如果你有多对多的关系,你需要一个数据透视表,这不是这里的情况。

您可以使用预先加载

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

    }
}

然后就是在你看来安排它的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM