J'ai un modèle User et un modèle workLOG. Le modèle utilisateur a de nombreux journaux de travail, ce qui signifie qu'un utilisateur peut avoir plusieurs journaux de travail (UNE À PLUSIEURS RELATIONS). J'ai créé une relation en utilisant la relation Eloquent.
Modèle utilisateur
$worklogs = Auth::user()->workLog;
Modèle workLog
class WorkLog extends Model { protected $table="worklog"; }
La table du journal de travail a une colonne appelée total_hours_per_day
. Comment puis-je extraire les N derniers enregistrements de la colonne de l'utilisateur connecté ou authentifié?
Ce que j'ai fait pour obtenir workLog jusqu'à présent
public function workLog() { return $this->hasMany('App\WorkLog','user_id','id'); }
Maintenant, je veux obtenir les 7 dernières données de la colonne total_hours_per_day
3 Réponses :
vous devez établir sur le modèle WorkLog
un belongsTo
.
public function user() { return $this->belongsTo('App\User'); }
Modifier: les relations doivent être établies dans les deux modèles que vous essayez de vous relier. Si vous aimez une fille, elle doit vous aimer en retour pour établir une relation. Vous venez de définir la relation d'un côté.
Essayez d'utiliser take () Comme le dit la documentation Laravel: "La méthode take renvoie une nouvelle collection avec le nombre d'éléments spécifié"
@foreach ($worklogs as $worklog) {{ $worklog->total_hours_per_day }} @endforeach
que signifie les 7 dernières données de la colonne heures totales par jour?
@TsaiKoga pour extraire les 7 dernières données d'un utilisateur, voir par exemple user_id 14 peut avoir plusieurs enregistrements. Comment puis-je extraire les 7 dernières données de cet utilisateur
@TsaiKoga avez-vous obtenu?
si le nombre de ces enregistrements multiples dépasse 7, vous devez obtenir les 7 dernières données?