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。 –
好吧,我可以怎么把格式的评论? –
检查我的编辑,这有道理吗? –