Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel集合中的变换_Php_Laravel_Laravel 5.6_Laravel Collection - Fatal编程技术网

Php laravel集合中的变换

Php laravel集合中的变换,php,laravel,laravel-5.6,laravel-collection,Php,Laravel,Laravel 5.6,Laravel Collection,我正在尝试通过我的图形应用程序中的Laravel集合进行一些数据转换。我想创建标签和数据集 我有一个类似这样的数据: [ { "id": 1, "company_id": 1, "year": 25, "turnover": "3449", "profit": "3201", "turnover_range": 25, "financial_year": {

我正在尝试通过我的图形应用程序中的
Laravel集合
进行一些数据转换。我想创建
标签
数据集

我有一个类似这样的数据:

[
    {
        "id": 1,
        "company_id": 1,
        "year": 25,
        "turnover": "3449",
        "profit": "3201",
        "turnover_range": 25,
        "financial_year": {
            "id": 25,
            "year": "2024-25"
        }
    },
    {
        "id": 2,
        "company_id": 1,
        "year": 33,
        "turnover": "5616",
        "profit": "5905",
        "turnover_range": 25,
        "financial_year": {
            "id": 33,
            "year": "2032-33"
        }
    },
    {
        "id": 3,
        "company_id": 1,
        "year": 1,
        "turnover": "4309",
        "profit": "8563",
        "turnover_range": 175,
        "financial_year": {
            "id": 1,
            "year": "2000-01"
        }
    },
    {
        "id": 4,
        "company_id": 1,
        "year": 14,
        "turnover": "5936",
        "profit": "8605",
        "turnover_range": 25,
        "financial_year": {
            "id": 14,
            "year": "2013-14"
        }
    },
    {
        "id": 5,
        "company_id": 1,
        "year": 29,
        "turnover": "7156",
        "profit": "3844",
        "turnover_range": 75,
        "financial_year": {
            "id": 29,
            "year": "2028-29"
        }
    },
    {
        "id": 6,
        "company_id": 1,
        "year": 6,
        "turnover": "5868",
        "profit": "633",
        "turnover_range": 75,
        "financial_year": {
            "id": 6,
            "year": "2005-06"
        }
    },
    {
        "id": 7,
        "company_id": 1,
        "year": 25,
        "turnover": "5809",
        "profit": "6831",
        "turnover_range": 575,
        "financial_year": {
            "id": 25,
            "year": "2024-25"
        }
    },
    {
        "id": 8,
        "company_id": 1,
        "year": 12,
        "turnover": "1",
        "profit": "1976",
        "turnover_range": 25,
        "financial_year": {
            "id": 12,
            "year": "2011-12"
        }
    },
    {
        "id": 9,
        "company_id": 1,
        "year": 30,
        "turnover": "680",
        "profit": "1222",
        "turnover_range": 25,
        "financial_year": {
            "id": 30,
            "year": "2029-30"
        }
    },
    {
        "id": 10,
        "company_id": 1,
        "year": 26,
        "turnover": "8197",
        "profit": "3687",
        "turnover_range": 25,
        "financial_year": {
            "id": 26,
            "year": "2025-26"
        }
    }
]
labels = ['2000-01','2032-33','2024-25','2005-06'];
这来自于我的模型的雄辩收集:

$fRA =  FinancialAndRisk::whereHas('company', function($q) use($request){
    $q->where('slug', $request->slug);
})
    ->with('financialYear')
    ->get();
我想把
年度
内的
财务年度
都取出来作为标签,所以我试着:

$labels = $fRA->pluck('financial_year.year');
它显示为空

我又试了一次

$labels= $fRA->map(function ($item){
    $item->fin_year = $item->financial_year['year'];
    return $item;
})->pluck('fin_year');
即使我进行了变换,也得到了相同的空结果

任何想法都值得赞赏。谢谢

编辑:

数据格式如下所示:

[
    {
        "id": 1,
        "company_id": 1,
        "year": 25,
        "turnover": "3449",
        "profit": "3201",
        "turnover_range": 25,
        "financial_year": {
            "id": 25,
            "year": "2024-25"
        }
    },
    {
        "id": 2,
        "company_id": 1,
        "year": 33,
        "turnover": "5616",
        "profit": "5905",
        "turnover_range": 25,
        "financial_year": {
            "id": 33,
            "year": "2032-33"
        }
    },
    {
        "id": 3,
        "company_id": 1,
        "year": 1,
        "turnover": "4309",
        "profit": "8563",
        "turnover_range": 175,
        "financial_year": {
            "id": 1,
            "year": "2000-01"
        }
    },
    {
        "id": 4,
        "company_id": 1,
        "year": 14,
        "turnover": "5936",
        "profit": "8605",
        "turnover_range": 25,
        "financial_year": {
            "id": 14,
            "year": "2013-14"
        }
    },
    {
        "id": 5,
        "company_id": 1,
        "year": 29,
        "turnover": "7156",
        "profit": "3844",
        "turnover_range": 75,
        "financial_year": {
            "id": 29,
            "year": "2028-29"
        }
    },
    {
        "id": 6,
        "company_id": 1,
        "year": 6,
        "turnover": "5868",
        "profit": "633",
        "turnover_range": 75,
        "financial_year": {
            "id": 6,
            "year": "2005-06"
        }
    },
    {
        "id": 7,
        "company_id": 1,
        "year": 25,
        "turnover": "5809",
        "profit": "6831",
        "turnover_range": 575,
        "financial_year": {
            "id": 25,
            "year": "2024-25"
        }
    },
    {
        "id": 8,
        "company_id": 1,
        "year": 12,
        "turnover": "1",
        "profit": "1976",
        "turnover_range": 25,
        "financial_year": {
            "id": 12,
            "year": "2011-12"
        }
    },
    {
        "id": 9,
        "company_id": 1,
        "year": 30,
        "turnover": "680",
        "profit": "1222",
        "turnover_range": 25,
        "financial_year": {
            "id": 30,
            "year": "2029-30"
        }
    },
    {
        "id": 10,
        "company_id": 1,
        "year": 26,
        "turnover": "8197",
        "profit": "3687",
        "turnover_range": 25,
        "financial_year": {
            "id": 26,
            "year": "2025-26"
        }
    }
]
labels = ['2000-01','2032-33','2024-25','2005-06'];

您应该能够执行以下操作:

$labels = $fRA->map(function ($item) {
    return $item->financial_year->year;
})->unique();
显然,如果要包含重复项(如果有),请删除
unique()

或者,如果您在财务年度模型中设置了
多个
关系,并且在此之后您不需要
$fRA
,则您可以执行以下操作:

$labels = FinancialYear::whereHas('FinancialAndRisk.company', function ($query) use($request) {
    $query->where('slug', $request->slug);
})->pluck('year');

您应该能够执行以下操作:

$labels = $fRA->map(function ($item) {
    return $item->financial_year->year;
})->unique();
显然,如果要包含重复项(如果有),请删除
unique()

或者,如果您在财务年度模型中设置了
多个
关系,并且在此之后您不需要
$fRA
,则您可以执行以下操作:

$labels = FinancialYear::whereHas('FinancialAndRisk.company', function ($query) use($request) {
    $query->where('slug', $request->slug);
})->pluck('year');

我认为您必须对
$item->financial\u year
进行json解码,然后才能使用其内部代码property@rkj数据来自雄辩的模型。我已经更新了这个问题。给这个问题一个dd来检查输出dd($fRA->map(function($item){return$item->financial_year['year'];})->all());你有('financialYear')处于快速加载状态,那么你如何获得
financial\u year
$labels=$fRA->Pull('financialYear.year')
我认为你必须对
$item->financial\u year
进行json解码,然后你可以使用它的内部代码property@rkj数据来自雄辩的模型。我已经更新了这个问题。给这个问题一个dd来检查输出dd($fRA->map(function($item){return$item->financial_year['year'];})->all());你有('financialYear')处于快速加载状态,那么你如何获得
financial\u year
$labels=$fRA->Pull('financialYear.year')