Я застрял в проблеме, в которой я пытаюсь очистить представленный мне код, и мне кажется, что я, должно быть, слишком долго занимался этим и не вижу этой проблемы.
На данный момент у меня есть следующий код в одной из моих моделей:
public function attachments(){
return $this->hasMany(volunteerAttachment::class, 'volunteerID','id');
}
public function photoID() {
$photoID= $this->attachments()->where('category','Drivers License')->orderBy('endDate','desc')->limit(1);
return $photoID;
}
Я хотел бы сделать то, что я считал относительно простым - заменить limit(1)
функции photoIdentification
напростой first()
.
Но когда я пытаюсь это сделать и просто вставляю {{$volunteer->photoID->id}}
в свой клинок, он просто возвращает ошибку App\volunteer::photoID must return a relationship instance
.
Однако я знаю, что естьотношения, потому что, если я продолжу использовать limit(1)
и введу:
@foreach($volunteer->photoID as $id)
{{$id->id}}
@endforeach
Правильно возвращает отношение и документ.
$volunteer
- переменная для этой конкретной модели App\volunteer
и вот как это определено в контроллере:
public function show(Volunteer $volunteer){
return view('volunteer.show', compact('volunteer'));
}