2017-09-20 1 views

Répondre

0

D'abord, définir la relation sur User modèle. La meilleure option pour vous la situation est d'utiliser une relation Has Many Through:

public function articles() 
{ 
    return $this->hasManyThrough(
     'App\Article', 
     'App\Feed', 
     'user_id', // Foreign key on feeds table... 
     'feed_id', // Foreign key on articles table... 
     'id', // Local key on users table... 
     'id' // Local key on feeds table... 
    ); 
} 

Ensuite, faire un objet utilisateur et obtenir ses articles:

$user = /App/User::with('articles')->find($id); 

foreach($user->articles as $article) { 
    // do whatever you need 
} 
+0

Merci beaucoup! –

+0

J'ai un problème avec ceci, j'ai seulement _id et pas tous les champs ... #attributes: tableau: 1 [▼ "_id" => {ObjectID # 278 ▼ + "oid": "59c224a09a89203b6e137622" } ] –

+0

Qu'est-ce que cela? Je veux dire comment l'avez-vous eu? –

0

dans le modèle

dans articles.php

public function Feed() 
{ 
    return $this->belongsTo('App\Feed'); 
} 

dans Feed.php

public function User() 
{ 
    return $this->belongsTo('App\User'); 
} 

public function Articles() 
{ 
    return $this->hasMany('App\Articles'); 
} 

dans User.php

public function Feed() 
{ 
    return $this->hasMany('App\Feed'); 
} 

dans le contrôleur

// Pour obtenir tous les articles de l'utilisateur avec id = $ id

$reports2 = Articles::with(array('Feed'=>function($query)use($id){ 
    $query->with('User'); 
    $query->where('user_id',$id); 
}))->orderBy('id', 'desc') 
    ->get();