В моем приложении у меня есть отношения «многие ко многим» между пользователями и организациями,
Пользователь
public function organisations()
{
return $this->belongsToMany('App\Organisation')->withPivot(['owner']);
}
Организация
public function users()
{
return $this->belongsToMany('App\User')->withPivot(['owner']);
}
В этих отношениях есть сводная колонка, чтобы указать, является ли пользователь владельцем организации или нет.
Я изо всех сил пытаюсь проверить отношения, мой тест возвращается,
Не удалось подтвердить, что null соответствует ожидаемому 1. Ожидаемый: 1 Фактический: null
Вот моя тестовая функция,
public function testUserHasOwnershipOfOrganisations()
{
$userRow = factory(User::class)->create();
$organisation = factory(Organisation::class)->create();
$userRow->organisations()->attach($organisation->id, ['owner' => true]);
$user = User::first();
$ownOrganisations = $user->organisations()->wherePivot('owner', true);
$this->assertEquals($organisation->id, $ownOrganisations->first()->organisation_id);
}
Мыслительный процесс вышеизложенного состоит в том, чтобы создать пользователя, создать организацию, создать отношения. Запросите первого пользователя в таблице, получите его организации и убедитесь, что организация в отношениях организации имеет тот же идентификатор, что и тот, который я только что создал.
Может ли кто-нибудь сказать мне, почему это не работает, как я ожидал?
Спасибо