我的问题是我希望使用Laravel Charts库在具有Highcharts的图形中注册用户已发布的促销数量,问题是我可以让您打印用户名。但我无法让他打印他的出版物总数
我的代码:
$users = User::select('nombre_empresa')->WhereIn('role_id',[2,3])->get();
foreach ($users as $user) {
$empresas[] = $user->nombre_empresa;
$id[] = $user->id;
$publicaciones[] = Promociones::where('user_id',$id)->get()->count();
}
$chart = new TotalPromociones;
$chart->title('Total de promociones publicadas por socios');
$chart->labels($empresas);
$chart->dataset('Numero de promociones','bar', ([$publicaciones]));
$chart->dataset('Total de promociones publicadas = '.$total_promociones,'bar',[]);
答案 0 :(得分:0)
对代码进行如下更改:
$users = User::WhereIn('role_id',[2,3])->pluck('nombre_empresa', 'id');
$empresas = [];
$publicaciones = [];
foreach ($users as $key => $val) {
$empresas[] = $val;
$publicaciones[] = Promociones::where('user_id',$key)->count();
}
$chart = new TotalPromociones;
$chart->title('Total de promociones publicadas por socios');
$chart->labels($empresas);
$chart->dataset('Numero de promociones','bar', ([$publicaciones]));
$chart->dataset('Total de promociones publicadas = '.$total_promociones,'bar',[]);
答案 1 :(得分:0)
Laravel提供了一种计算关系结果数量的方法。
如果您要计算没有关系的关系的结果数 实际加载它们时,您可以使用withCount方法,该方法将 在生成的模型上放置一个{relation} _count列。例如:
$posts = App\Post::withCount('comments')->get();
foreach ($posts as $post) {
echo $post->comments_count;
}
在您的情况下,它将类似于:
$users = User::select('nombre_empresa')->withCount('promociones')->WhereIn('role_id',[2,3])->get();
foreach ($users as $user) {
$empresas[] = $user->nombre_empresa;
$id[] = $user->id;
$publicaciones[] = $user->promociones_count;
}
传递给withCount()
方法的值应与Promociones
模型中给定的与User
的关系的方法名称相同。