[英]Laravel Pivot Table and indirect relationship
我正在使用Laravel 4编写调查,需要用户能够多次进行相同的调查(并将答案保存为不同的实例)。
我目前有一个名为Survey_user的数据透视表,该表将用户链接到邀请的调查。 数据透视表的潜在正面影响是它的主键可用于具有唯一的调查实例。
我的问题是弄清楚如何获得答案,特别是通过用户模型。 答案表将包含数据透视表主键的外键。
我的用户模型:
class User extends Eloquent {
public function surveys() {
return $this->belongsToMany('Survey', 'survey_user')
->withPivot('id', 'completed_at');
}
public function answers() {
// This should return all of the user's answers, irrespective of
// survey id's.
}
}
表格:
surveys: id
users: id
survey_user: id, survey_id, user_id, completed_at
answers: survey_user_id, answer_text, ...
我如何才能实现这种伪关系,或者也许是一种更好的结构方式?
使用关系! 这是我的处理方式:
class User extends Eloquent {
public function surveys() {
return $this->belongsToMany('Survey');
}
public function answers() {
return $this->hasMany('Answer');
}
}
class Survey extends Eloquent {
public function surveys() {
return $this->belongsToMany('User');
}
public function answers() {
return $this->hasMany('Answer');
}
}
class Answer extends Eloquent {
public function survey() {
return $this->belongsTo('Survey');
}
public function user() {
return $this->belongsTo('User');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.