Как выбрать общее количество загрузок каждого продвижения, которое у меня есть в моей базе данных, с помощью laravel ORM eloquent 5.8? - PullRequest
1 голос
/ 30 июня 2019

Используя laravel, мне нужно показать на графике количество раз, когда промо-акция погашается.Я могу опубликовать рекламные акции каждого пользователя, который начинает сеанс, но мне нужно, чтобы вы поместили эти данные в график.Буду очень признателен за вашу помощь.


Текущий код:

    $nombres = Promociones::where('user_id',Auth::user()->id)->pluck('nombre_promocion', 'id');

    $promociones = [];
    $descargadas = [];

    foreach ($nombres as $key => $val)
    {
        $promociones[] = $val;
        $descargadas[] = Promociones::where('user_id',$key)->count();
    }  

    $chart = new UserPromociones;
    $chart->title(' Promociones publicadas ');
    $chart->labels($promociones);
    $chart->dataset('Numero de promociones','bar', ($descargadas));
    $chart->dataset('Total de promociones publicadas = '.$total_promociones,'bar',[]);

Требуемый вывод графика:

the graph

1 Ответ

0 голосов
/ 01 июля 2019

Я думаю, что проблема в этой строке

$descargadas[] = Promociones::where('user_id',$key)->count();

, поскольку вы ищите только user_id, который соответствует индексу массива !!

это должно быть похоже на

$descargadas[] = Promociones::where('user_id',$val)->count();

или

$descargadas[] = Promociones::where('user_id',$val->id)->count();

, и даже если эта работа не является лучшим способом, худшее, что нужно сделать, это выполнить запрос базы данных в цикле, что ужасно

, еслиданные не так уж велики, вы можете сделать что-то подобное перед foreach

$promociones = collect(Promociones::all()->toArray());

, это извлечет модель из коллекции, тогда любое условие where будет искать в коллекции и не будет требовать запроса к базе данных для каждого.время.

 $promociones = collect(Promociones::all()->toArray());

 foreach ($nombres as $key => $val)
    {
        $promociones[] = $val;
        $descargadas[] = $promociones->where('user_id',$val->any_filed)->count();
    }  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...