0
首先,我將解釋我的模型是如何創建的。我有3個模型老師,簽名和資源在Laravel 5中創建與多對多關係的關係
一個資源belogs給老師和簽名,簽名和老師有多對多的關係。
老師有很多資源。 簽名有許多資源。 老師有很多簽名。 簽名有許多教師 資源被授予老師,也屬於簽名。
這裏是我的數據庫結構:
Teachers
id
name
Signature
id
name
dsescription
Resources
id
name
path
teacher_id
signature_id
signature_teacher //table from many to many relation doesn't have a model related to it
id
signature_id
teacher_id
現在我想從一個teacher_id的資源,也是一個signature_id 例如在教師模型從給定簽名 或簽名讓所有得到所有資源來自ginven教師的資源。
我試着用關係模型中的一對多關係,但是這使得我所有的資源形成一個教師或一個簽名的所有資源,但不是來自教師的資源,也是一個簽名。
class Resource extends Model {
public teacher(){
return $this->belongsTo('APP\Teacher');
}
public signature(){
return $this->belongsTo('APP\Signature');
}
}
class Teacher extends Model {
public function signatures(){
return $this->belongsToMany('App\Signature');
}
public function resources() {
return $this->hasMany('App\Resource'); //return all resources from a teacher
// how can i get the resources with a given signature
}
}
class Signature extends Model {
public function teachers(){
return $this->belongsToMany('App\Teacher')
}
public function resources()
{
return $this->hasMany('App\Resource'); //return all resources from a signature
//how can i get all the resources with a given teacher?
}
}
確定這要給我belogs到簽名老師的資源。但例如我有這些資源: resource1 belogs簽名1和teacher2。 resource2在簽名2和教師2上簽名。 當我打電話給 $ signatureId = signature1; $ teacherId = teacher2; Signature :: find($ signatureId) - > teachers() - > find($ teacherId) - > resources; 即將返回resource1和resource2,但resource2不會記錄到簽名1。 –
好吧,我可以怎麼把格式的評論? –
檢查我的編輯,這有道理嗎? –