Laravel Модель рекурсии подавляет бесконечный цикл - PullRequest
0 голосов
/ 24 сентября 2018

Имея следующую рекурсию Laravel в моей модели, как мне избежать случайно зарегистрированного отношения.Что я имею в виду: у меня есть пользователи, и у пользователей может быть много репортеров, и мы хотим вернуть дерево данного пользователя с помощью следующего фрагмента, который работает до того момента, когда пользователь не является репортером для себя

/**
 * User can have many Reporters
 *
 * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
 */
public function hasreporters()
{
    return $this->belongsToMany('App\User', 'reporting_to', 'acc_receiving_from_id', 'acc_reporting_to_id')
        ->where('status', 'A');
}

/**
 * @return $this
 */
public function children()
{
    return $this->hasreporters()->with(['children']);
}

где я могу проверить в цикле, если данный идентификатор не равен родительскому идентификатору

1 Ответ

0 голосов
/ 24 сентября 2018

В функции children() вы используете отношение как построитель запросов.Он s not wrong way, but method -> with () `ищет отношение из своего аргумента, затем вызывает его.Вот рекурсия :) Попробуйте:

public function children()
{
    return $this->hasreporters();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...