Я работаю над CRM, где у меня есть модель User, которая может иметь много-много отношений с другими пользовательскими и тип отношений, которые определяются через сводную таблицу.Laravel 5.3 От многих до многих отношений с той же моделью
Например:
Тим -> Том (сотрудник)
Tim -> Стив (член семьи)
Tim -> Jon (соседи)
В моем пользователе модель У меня есть это, когда я использую user1_id и user2_id из сводной таблицы в качестве внешних ключей:
public function relationships()
{
return $this->belongsToMany(User::class,null,'user1_id','user2_id')->withTimestamps()->withPivot('type');
}
Которая отлично работает в одном направлении. Поэтому, если я позвоню так:
User::find($timsID)->relationships;
Это работает так, как ожидалось, и я получу Тома Стива и Джона в качестве результатов. Теперь, если бы я использовал идентификатор Тома в этом запросе, Тим не вернется как отношения, так как он ищет в user1_id, когда идентификатор Тома хранится в user2.
Есть ли решение потянуть записи, если есть совпадение от внешнего ключа? Я не хочу хранить 2 записи для каждой связи.
Какова ваша сводная таблица? вы, кажется, передаете «null». – EddyTheDove
Это user_user. Я передаю null, так как я следил за соглашением о присвоении имен laravel и по умолчанию оно присваивается при передаче null. – tecshaun