2013-10-11 3 views
0

다중 참여 메시징 시스템을 만들려고합니다. 다음은 데이터베이스 설계 I'v은 여기있다 : Messaging system database schema메시징 시스템에서 3 가지 모델 간의 Laravel Eloquent 관계 정의

Conversation 
------------ 
id 

Messages 
-------- 
id 
conversation_id 
from_id 
subject 
message 
from_timestamp 

Participants 
------------ 
conversation_id 
user_id 
last_read_timestamp 

당신이 날이 모델 사이 웅변 관계를 설명하는 데 도움이 수 있을까요? 내 말은 : http://laravel.com/docs/eloquent#relationships

답변

1
class Conversation extends Eloquent 
{ 
    public function messages() 
    { 
     return $this->hasMany('Message'); 
    } 

    public function participants() 
    { 
     return $this->hasMany('Participant'); 
    } 
} 

class Message extends Eloquent 
{ 
    public function conversation() 
    { 
     return $this->belongsTo('Conversation'); 
    } 

    public function from() 
    { 
     return $this->belongsTo('User', 'from_id'); 
    } 
} 

class Participant extends Eloquent 
{ 
    public function conversations() 
    { 
     return $this->belongsTo('Conversation'); 
    } 

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

// Messages 
foreach($conversation->messages as $message) 
{ 
    echo 'From: '.$message->from->username."<br />"; // Taking a guess here, depends on your user model. 
    echo 'Subject: '.$message->subject."<br />"; 
    echo 'Message: '.$message->message."<br />"; 
    echo 'Timestamp: '.$message->from_timestamp."<br />"; 
    echo '<hr />'; 
} 

// Participants 
foreach($conversation->participants as $participant) 
{ 
    echo 'User: '.$participant->user->username; 
} 
+0

고마워요! 나는 그것을 같은 방식으로했다. – Alex

+0

확인해 주시겠습니까? 나는 그것을 올바르게하고 있는가? https://gist.github.com/AleksMeshkov/59a26a86079cc722e900 – Alex