从文档中我看到->pivot->
就像这样使用
@foreach($program->attendees as $attendee)
{{$attendee->pivot->paid;}}
@endforeach
我想找到一个特定$attendee
的支点数据,就像这样......
$program->attendees->find($attendee)->pivot->paid;
但是我收到错误:试图获取非对象的属性
我不知道出了什么问题,因为@foreach
版本有效。如果我跑了
{{$program->attendees->find($attendee)}}
我得到了
{"id":"1","created_at":"2015-03-02 21:35:30","updated_at":"2015-03-02 21:35:30","first_name":"Chris","last_name":"Griffin","birthday":"2010-10-08","media_release":"1","food_allergies":"peanuts","special_care":"","user_id":"2","pivot":{"scheduled_program_id":"1","attendee_id":"1","paid":"0"}} 0
看起来像枢轴数据......
答案 0 :(得分:1)
在以下行中查看您的查找方法:
$program->attendees->find($attendee)->pivot->paid;
它需要id值来查询你的模型,然后获得支点。您是否尝试使用$attendee->id
值?
$program->attendees->find($attendee->id)->pivot->paid;
答案 1 :(得分:1)
问题在于你是在循环中进行的,而不是每个程序实际上都有一个具有该id的与会者。
这应该解决它:
@foreach($programs as $program)
@if($a = $program->attendees->find($attendee))
{{ $a->pivot->paid }}
@endif
@endforeach
顺便提一下,我注意到输出结尾的0
。这可能是第二个没有这个id参加者的节目。
答案 2 :(得分:0)
定义关系时,您还应该应用withPivot()
方法,例如:
public function attendees(){
return $this->belongsToMany('Attendee')->withPivot('paid', 'other_pivot_column');
}