Получение последнего элемента в рекурсивных отношениях Laravel - PullRequest
2 голосов
/ 02 июня 2019

У меня есть отношение manager() в моей модели User, которое является рекурсивным, поэтому я могу получить менеджера пользователя, менеджера менеджера и так далее. Это в конечном итоге приведет к менеджеру, который является директором.

User
   Manager
     Their Manager
        Their Manager
           Director

Мой вопрос: как мне извлечь Директора? Я пробовал user->manager->first() и user->manager->latest()->first() среди других, но, похоже, никто не возвращает желаемый результат.

Ниже приведен код отношения в моей User модели:

public function manager()
{
    return $this->belongsTo(__CLASS__, 'line_manager_id')->with('manager');
}

1 Ответ

1 голос
/ 03 июня 2019

Добавьте этот метод в вашу модель пользователя, затем вызовите $user->getDirector();

public function getDirector()
{
    if ($this->manager) {
      return $this->manager->getDirector();
    }

    return $this;
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...