we have developed the message system in which we established two morph relationships with 4 table, staff send message to student and student send messages to staff I want to get the received messages from the relationship I established get what if I want to get the received message of a certain model with an id
for example, if student "X" send message to staff "A"
and student "Y" send message to staff A when I query staff A's received messages I got the two messages but when I want to get the message of student X
how we get it?
tbl_message
id messageable_id, messageable_type, subject, message
1 1 app\staff msg1 msg1
2 2 app\staff msg1 msg1
3 1 app\student msg2 msg2
4 2 app\student msg2 msg2
tbl_message_receiver
id, message_id , receiveable_id, receiveable_type
1 1 1 app\student
2 2 2 app\student
3 3 1 app\staff
3 4 1 app\staff
staff
id name
1 A
2 B
student
id name
1 X
2 Y
class Message extends Model
{
public $table = "tbl_message";
public function messageable()
{
return $this->morphTo();
}
}
class Messagereceive extends Model
{
public $table = "tbl_message_receiver";
public function receiveable()
{
return $this->morphTo();
}
public function message()
{
return $this->hasOne('App\Message');
}
}
class Staff extends Model
{
public function messages()
{
return $this->morphMany('App\Message', 'messageable');
}
public function receives()
{
return $this->morphMany('App\Messagereceive', 'receiveable');
}
}
class Student extends Model
{
public function messages()
{
return $this->morphMany('App\Message', 'messageable');
}
public function receives()
{
return $this->morphMany('App\Messagereceive', 'receiveable');
}
}
tbl_message
id messageable_id, messageable_type, subject, message
3 1 app\student msg2 msg2
4 2 app\student msg2 msg2
`````
`````
tbl_message_receiver
id, message_id , receiveable_id, receiveable_type
1 1 1 app\student
2 2 2 app\student
3 3 1 app\staff
4 4 1 app\staff
`````
`````
$staff = \App\Staff::find(1);
$all_message_recieves = $staff->receives;
````
````
3 3 1 app\staff
4 4 1 app\staff
````
**I want to get receive messages from student id 1**
and how to get message subject and message content
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire