Получить идентификатор во время зацикливания - PullRequest
1 голос
/ 19 марта 2019

Я хочу, чтобы сотрудник оставил заявление, в котором, когда сотрудник отправляет запрос на отпуск, его начальник немедленно получит уведомление по электронной почте

Моя таблица в базе данных, как это

id |    name     |      email           | person_in_charge |
1      Michael        michael.com                2
2      Johan          johan.com                  4
3      Lorem          lorem.com                  2
4      Ipsum          ipsum.com                  5
5      Dolor          dolor.com

Я хочу, чтобы, когда идентификатор пользователя 1 отправлял электронное письмо, то получающий письмо является идентификатором пользователя 2, 4 и 5, потому что идентификатор пользователя 2 является начальником идентификатора пользователя 1, а идентификатор пользователя 4 является начальником с идентификатором пользователя 2 и идентификатором пользователя 5 является их главой.

Я использую во время зацикливания, но в результате получатель электронной почты получает пользователя с 4 по 5, пользователь с идентификатором 2 не получает письмо

Вот код

$currentuserid = '1';

    $show= Users::where('id',$currentuserid)->first();

    if($show->pic_for!=null)
    {
        $pic_for = $tampil->pic_for;

        while($pic_for!=null)
        {
            $query = Users::where('id',$pic_for)->first();

            if($query->pic_for==null)
            {
                break;
            }else
            {
                $pic[]=$query->pic_for;
                $pic_for = $query->pic_for;

            }

        }
        dd($pic);

Вы знаете, где я пропустил?

Спасибо

1 Ответ

1 голос
/ 19 марта 2019

Вы просто не сохраняете первую ссылку, когда входите в цикл. Первый $pic_for никогда не добавляется в массив $pic.

EDIT / BTW: этот код может в основном DDoS вашей собственной базы данных с этим циклом. Просто идея, но вместо того, чтобы перебирать отдельные экземпляры, вы можете создать HABTM-отношение между ними. Таким образом, вы можете запросить как $user->usersInCharge() и выполнить итерацию по этой коллекции.

...