J'essaie de limiter sur hasMany relation dans laravel mais au lieu de chaque poste il limite sur l'ensemble ou tous les enregistrements. Voici mon code pour l'explication.Limite sur le commentaire (hasMany relation avec Post modèle) pour chaque poste dans Laravel
class Post extends Model {
protected $table = "user_posts";
protected $appends = ['logged_in_user_id', 'comments_count'];
public function user() {
return $this->belongsTo('App\User');
}
public function comments() {
return $this->hasMany('App\Comment')->take(2);
}
}
Je suis en train de faire 2 ou 3 commentaires récents sur chaque poste ci-dessous
$posts = \App\Post::orderBy('updated_at', 'DESC')->with('comments')->where('user_posts.user_id', $user_id)->paginate(10);
problème est au lieu de donner 2 commentaires pour chaque poste, il ne donne que 2 commentaires de tous le poste tiré par les cheveux .
Résultat courant:
Post1:
- Commentaire 1
- commentaire 2
Post2: Aucun commentaire chargé en poste 2, car elle limite sur tout.
attendu:
post1:
- commentaire 1
- commentaire 2
post2:
- commentaire 1
- commentaire 2
Try this '\ App \ Poster :: orderBy ('updated_at', 'DESC') -> avec ([fonction => 'commentaires' ($ q) { $ q-> take (2); }]) -> get(); '!! – Maraboc
J'ai essayé cela mais je donne le même résultat –
Question évidente a post2 a des commentaires ?? – Maraboc