J'ai une tâche cron dans mon projet Laravel 4 qui récupère les données d'une API et les stocke dans la base de données à l'aide de Eloquent
. J'ai besoin de le faire pour chaque utilisateur stocké dans ma table d'utilisateurs. Je me suis dit que je pouvais parcourir chaque utilisateur, obtenir les données et $this->save()
cela dans mon modèle. Seul le dernier enregistrement est ajouté.
J'ai fait un test simple:
$this->user_id = 23;
$this->save();
$this->user_id = 43;
$this->save();
et seule la dernière entrée est ajoutée. Clairement, je n’utilise pas correctement Eloquent ou quelque chose du même genre. Ne devrais-je pas utiliser Eloquent?
Réponses:
2 pour la réponse № 1Vous ne faites que mettre à jour votre modèle ($ this) à chaque exécution de la boucle, de sorte que seule la dernière valeur sera affichée.
Vous devriez plutôt créer un enregistrement chaque fois:
Model::create([
"user_id" => 23
]);
Où modèle est votre modèle éloquent.