1
votes

Laravel: relation un à plusieurs, extraire le dernier enregistrement N de la table

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

Captures d'écran du tableau entrez la description de l'image ici

entrez la description de l'image ici


4 commentaires

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?


3 Réponses :


2
votes

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é.


0 commentaires

2
votes

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é"


0 commentaires

0
votes
@foreach ($worklogs as $worklog)
{{ $worklog->total_hours_per_day }}
@endforeach

0 commentaires