我想用 chartjs 在我的网站上实现一个图表。我正在尝试使用 laravel,我用一个具有关系(产品、结果)的对象(提供者)创建了一个函数,我想过滤它。我只想得到 实际月份/实际年份 的结果。所以我尝试了很多东西,但我无法提供一个简单、干净的代码解决方案。
我尝试了以下操作:
- $providerResults->results->where('created_at','2019-01-28 00:00:00') //这是可行的,但我只想使用“2019”或“1”进行过滤' 一月
- $providerResults->results->where('created_at', 'LIKE','%2019%') //不工作
- $providerResults->results->where('created_at', 'LIKE','%2019%')->get() //不工作
- $providerResults->results->whereIn('created_at', 2019); //不工作
也许使用 filter()?
private function getResultsForChart($objProvider) {
$providerResults = $objProvider
->where('id', AUTH::user()->provider_id)
->with('products')
->with('results')
#->whereYear('created_at', 2019)
#->whereMonth('created_at', 1)
->first()
;
$providerResultsForChart = $providerResults->results->whereIn('created_at', 2019);
dd($providerResultsForChart);
return $providerResultsForChart;
}
我的预期结果是我的收藏只包含实际月份/实际年份,而不是所有内容。
我希望有人能给我一些提示或指导,让我可以用来解决我的问题。
谢谢提前非常感谢!
最佳答案
在像这样的条件下使用预先加载来尝试它:
$providerResults = $objProvider
->where('id', AUTH::user()->provider_id)
->with('products')
->with(['results' => function ($query) {
$query->whereYear('created_at', 2019)
->whereMonth('created_at', 1);
}])
->first();
关于php - 如何使用 'where' 等 Eloquent 方法从对象/集合中获取特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54402740/