Это мои таблицы:
пользователь:
id username password
1 user1 ********
2 user2 ********
3 user3 ********
4 user4 ********
5 user5 ********
6 user6 ********
UserConnections:
pivot_id parent_user_id child_user_id
1 1 2
2 1 3
3 3 4
4 3 5
class User extends Model
{
public function connections()
{
return $this->hasMany('App\UserConnections')->with(['parent','child']);
}
}
class UserConnection extends Model
{
public function parent()
{
$this->belongsTo('App\User','parent_user_id');
}
public function child()
{
$this->belongsTo('App\User','child_user_id');
}
}
$user = App\User::find(3);
Теперь, когда я звоню $user->connections
для идентификатора пользователя 3;
Это должно дать мне 2,3 & 4 ряд из UserConnections
Таблица
Explaination:
Во второй строке у user3 есть родитель, который является user1
В третьем ряду & в-четвертых, у user3 двое детей
Вот что решило мою проблему:
пользователь:
id username password
1 user1 ********
2 user2 ********
3 user3 ********
4 user4 ********
5 user5 ********
6 user6 ********
UserConnections:
pivot_id parent_user_id child_user_id relation
1 1 2 child
2 2 1 parent
3 1 3 child
4 3 1 parent
5 3 4 child
6 4 3 parent
7 3 5 child
8 5 3 parent
class User extends Model
{
public function connections()
{
return $this->belongsToMany('App\Newsroom','UserConnections','parent_user_id','child_user_id')->with(['user']);
}
}
class UserConnection extends Model
{
public function user()
{
$this->belongsTo('App\User','child_user_id');
}
}
Благодаря @Autista_z
Других решений пока нет …