从循环中获取ID

时间:2019-03-19 07:10:41

标签: laravel loops foreach while-loop

我想提出一个员工请假申请,当员工提交请假申请时,他的老板将立即在电子邮件中收到通知

我在数据库中的表是这样的

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

我想,当用户ID 1发送电子邮件时,接收电子邮件的用户是用户ID 2、4和5,因为用户ID 2是用户ID 1的老板,而用户ID 4是老板。用户ID 2的用户,而用户ID 5的所有人都是老板。

我一直在使用while循环,但是结果是收到电子邮件的是用户ID 4和5,用户ID 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 个答案:

答案 0 :(得分:1)

进入循环时,您只是不保存第一个参考。第一个$pic_for永远不会添加到数组$pic中。

EDIT / BTW:该代码基本上可以通过该循环对您自己的数据库进行DDoS。只是一个想法,而不是遍历单个实例,您可以在它们之间创建一个HABTM关系。因此,您可以像$user->usersInCharge()那样查询并遍历此集合。