【发布时间】:2014-01-31 20:25:45
【问题描述】:
我有一个 Poll 表、一个 Students 表,以及它们之间的一个数据透视表,其中包括一个令牌和他们的三张选票。
public function students()
{
return $this->belongsToMany('Student', 'polls_students')->withPivot('token','first','second','third');
}
在保存投票结果时,我遇到了一些我不太理解的奇怪行为。我希望有人能解释我错过了什么:
$poll = Poll::find(Input::get('poll_id'));
foreach($poll->students()->where('students.id', '=', Input::get('student_id'))->get() as $student){
var_dump($student->pivot->token);
}
$student = $poll->students()->where('students.id', '=', Input::get('student_id'))->get();
var_dump($student->pivot->token);
在上面的代码中,foreach循环会成功显示token,第二个会抛出异常Undefined property: Illuminate\Database\Eloquent\Collection::$pivot
我错过了什么?这两个调用在逻辑上不是创建同一个对象吗? “枢轴”如何处理第一个而不是后者?
【问题讨论】:
标签: php laravel-4 pivot-table eloquent