Php 是否可以在Laravel中获得透视表与另一个表的关系?
我有一个培训应用程序,当前具有以下模式:Php 是否可以在Laravel中获得透视表与另一个表的关系?,php,mysql,database,laravel,eloquent,Php,Mysql,Database,Laravel,Eloquent,我有一个培训应用程序,当前具有以下模式: trainings id name speakers id first_name last_name training_speaker id training_id speaker_id training_speaker_dates id training_speaker_id date time 一个培训可以有多个演讲者,一个演讲者可以有多个培训。目前,我正在通过pivot模型访问培训演讲者 class Training { public
trainings
id
name
speakers
id
first_name
last_name
training_speaker
id
training_id
speaker_id
training_speaker_dates
id
training_speaker_id
date
time
一个培训可以有多个演讲者,一个演讲者可以有多个培训。目前,我正在通过pivot模型访问培训演讲者
class Training {
public function speakers() {
return $this->belongsToMany('App\Speaker')->using('App\TrainingSpeaker');
}
}
假设我们有一个为期3天的培训,一个演讲者可以参加第一天的培训,也许只是早上,这就是为什么training\u speaker\u dates
有日期和时间(上午或下午)
是否可以在“培训课程”下的“演讲者方法”中包含培训\演讲者\日期
或者,我是否应该删除training\u speaker\u dates
并将字段添加到training\u speakers
表中,并允许使用唯一id重复值(training\u id和speaker\u id)?那么它看起来是这样的
training_speaker
id
training_id
speaker_id
date
time
试试这个
class Training {
public function trainingspeakerdates() {
return $this->hasMany('App\Trainingspeakerdates','training_speaker_id','id')->using('App\TrainingSpeaker');
}
}
不知道如果不使用第三方软件包或者不通过自己实现某种形式的has-many,这是否可能。但是,您为什么没有在
training\u speaker
表中使用date
和time
作为枢轴属性呢?@user3532758我在training\u speaker中存储时使用了attach方法,因此我只能保存一个我猜唯一的training\u id和speaker\idAh!我懂了。因为有id
我想你可能已经计划好在那里重复配对了。我以前在类似的情况下使用过syncWithoutDetaching
。对不起,我帮不上忙,希望有更有经验的人来。祝你好运。不用担心@user3532758 mate!谢谢你分享你的想法。对不起,我需要先访问发言者并附上每个发言者的日期。