2015-09-04 2 views
2

Сообщение МодельКак получить данные из отношения?

class Post extends Model 
{ 


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

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

комментарий модель

class Comment extends Model 
    { 

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


    } 

пользователя Модель

class User extends Model 
{ 


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

Теперь мой вопрос, как я могу получить доступ все комментарии, которые принадлежат к сообщению с комментарий ed username Заранее спасибо

+0

того, только имя пользователя, вы сможете только получить все комментарии ВСЕ сообщения, принадлежащие данному пользователю, для этого вы можете использовать hasManyThrough отношение – zakius

+0

@ zakius.thank вас для comment.can вы можете отправить свой ответ – iCoders

+0

Попробуйте этот пользователь с помощью ('post.comment') -> get() ' – mdamia

ответ

1

Попробуйте это, он вернет все сообщения с комментариями и сообщения с авторами для выбранного пользователя.

$data = User::with('post.comment') 
     -> with('post.author') 
     -> Where('id',$user_id) 
     -> first(); 

Это сообщение будет опубликовано с авторами и опубликовано с комментариями пользователей, которые сделали комментарии. Предполагая, что ваши модели настроены таким образом,

Post belongs to an Author, 
Author has many Post, 
Post has many Comment 
Comment belongs to a Post 
Comment belongs to a User 
User has many Comment. 

$posts = Post::with('author') -> with('comment.user') -> get(); 
+0

Мое требование. Мне нужно отобразить сообщение с именем postherher и вместе с комментариями, которые принадлежат к этому сообщению с комментариями username.if вы видите мою таблицу structure.i am сохранение пронумерованного идентификатора пользователя означает ключ forign – iCoders

+0

@vision изменит ваш запрос, я обновлю. – mdamia

+0

спасибо. я попробую – iCoders

1

Вы можете сделать запрос для комментариев отношений, как в следующем:

$post_id = 7; 
$username = 'username'; 

$comments = Comment::where('post_id', $post_id)->whereHas('user', function($q) use($username) { 
    $q->where('username', $username); 
})->get(); 
+0

@ Iamzozo.thank вы .ii попробуете – iCoders

Смежные вопросы