0
votes

Comment puis-je obtenir toutes les dates même les dates qui n'ont pas d'enregistrement par éloquent avec le groupe par?

J'ai une méthode qui obtienne un paramètre de mois pour sélectionner des lignes de ce mois à partir de la table des utilisateurs. Je souhaite montrer le nombre d'utilisateurs enregistrés pendant un mois.

|date   |count  |
| 1     | 0     |
| 2     | 0     |
| 3     | 0     |
| 4     | 0     |
| 5     | 10    |
| 6     | 0     |
| 7     | 0     |
| 8     | 0     |
| 9     | 0     |
| 10    | 0     |
| 11    | 0     |
| 12    | 0     |
| 13    | 0     |
| 14    | 0     |
| 15    | 3     |


3 commentaires

Que voulez-vous dire par "dates qui n'existent pas" ou ce qui est stocké dans ces dates


Dates que personne n'a enregistré, dans mon exemple au 5/11/2018, 10 utilisateurs enregistrés, et au 15/11/2018, 3 utilisateurs enregistrés, mais dans d'autres dates, personne n'a été enregistré.


@Ahadabasirad s'il vous plaît vérifier ma réponse


3 Réponses :


0
votes

Si vous souhaitez une date par défaut que vous pouvez mentionner dans ce fichier Migration ou vous pouvez également le faire dans votre modèle à partir de laquelle vous pouvez récupérer des données quand il n'y a pas de date donné par l'utilisateur. Vous pouvez également renvoyer ceci pour plus

Comment passer des valeurs par défaut Contrôleur en routage à Laravel 5?


0 commentaires

1
votes

Veuillez vérifier comme ceci xxx


1 commentaires

S'il vous plaît vérifier la dernière version simplifiée



0
votes

De ce que j'ai des commentaires: Je pense que la meilleure chose ici est de compter le nombre d'utilisateurs créés chaque jour du mois. Cela vous obtiendra zéro au cas où personne n'a enregistré à une date donnée. Avec cela, vous seriez probablement en boucle à travers les dates en vérifiant les utilisateurs totaux enregistrés à chaque date.

Par exemple, essayons d'obtenir les utilisateurs de créer les 30 derniers jours à partir de maintenant: P>

$results = [];

$startOfDay = now()->createMidnightDate();

for($i=0; $i<=30; $i++)
{
    $total_count = User::whereBetween('created_at', [$startOfDay->subDays($i-1), $startOfDay->subDays($i)])
        ->count();

    array_push($results[ $startOfDay->subDays($i)->format('d')], $total_count);
}


0 commentaires