如何选择用户使用laravel 5.7制作的出版物总数?

时间:2019-06-06 04:21:36

标签: php laravel eloquent

我的问题是我希望使用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',[]);

the graphic

2 个答案:

答案 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的关系的方法名称相同。