Laravel - проверить, существует ли связь - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь проверить, есть ли у модели отношения, используя with('')

$currentUser = User::with('account.member.country', 'identity')->first();

$relations = collect($currentUser->getrelations())->values();  //or without converting

с getrelations() Я могу получить учетную запись и идентификационные отношения

, как я могу сделать это динамически и проверить, имеет ли учетная запись также отношение (член), пока существует вложенное отношение?

Я имею в виду, что с вложенным отношением в моем примере участник является вложенным отношением со счета, а страна является вложенной от участника.

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Я нашел решение, это в основном рекурсивная функция

protected  $relationNames = [];

function recursive($model){

        foreach($model as $key => $value){

           $this->relationNames[$key] =$value;

            if(count($value->getrelations()) > 0){

                $this->recursive($value->getrelations());
            }
        }
  }
0 голосов
/ 09 марта 2020

Не уверен, что то, что вы ищете, но вы можете использовать существующий вспомогательный метод, который будет возвращать логическое значение, если существует отношение,

User::first()->has('dogs')->exists();

вернет true, если первый пользователь имеет отношение с собаки.

...