@Constantine1

Как получить доступ к полям связанного объекта в Laravel?

В проекте имеются две модели: Department и Person. Данные модели определены с отношением многие ко многим. то есть каждому Person может принадлежать несколько Department и каждому Department может принадлежать несколько Person.

Для Person:
class Person extends Model
{
    protected $table = 'persons';
    public function departments (){
        return $this->belongsToMany('App\Department')->withTimestamps();
    }
}


Для Department:
class Department extends Model
{
    public function persons(){
        return $this->belongsToMany('App\Persons')->withTimestamps();
    }
}


Возьмем некого Person:
$person = App\Person::find(10);
определим для него
$person->departments()->attach(1,5);
В результате получим запись в pivot таблице.
запишем:
$person->toArray();
return $person->departments;

Получим массив departments, привязанных к Person

Теперь внимание, вопрос: как получить через модель Department список Persons, которые к ней привязаны?
  • Вопрос задан
  • 393 просмотра
Пригласить эксперта
Ответы на вопрос 1
@hakkol
Если вы хотите получить список Persons у которых есть связь с Department то
$persons = Person::whereHas('departments', function(){})->get();


Если вы хотите получить для конкретного department все persons то:
$persons = Department::find($id)->persons;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы