Лучший способ получить отношения родителей и детей за одним столом в Laravel?

Это мои таблицы:

пользователь:

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 двое детей

0

Решение

Вот что решило мою проблему:

пользователь:

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]