Php 用户相互友好关系检查laravel

Php 用户相互友好关系检查laravel,php,laravel,Php,Laravel,我在LaravelV4.2项目中工作,现在我不明白如何解决这个问题。 我有一个用户数组和登录用户id现在我想检查登录用户是否跟随数组中的任何用户,或者数组中的任何单个用户是否跟随登录用户。其中一个then在后面,两个数组都在后面,然后返回true。但我想通过拉威尔的关系来解决这个问题。 下面是我编写的代码 $login_id = 2; $users_arr = Array ( [0] => 87 [1] => 9595 [2] => 8625

我在LaravelV4.2项目中工作,现在我不明白如何解决这个问题。 我有一个用户数组和登录用户id现在我想检查登录用户是否跟随数组中的任何用户,或者数组中的任何单个用户是否跟随登录用户。其中一个then在后面,两个数组都在后面,然后返回true。但我想通过拉威尔的关系来解决这个问题。 下面是我编写的代码

$login_id = 2;

$users_arr = Array
(
    [0] => 87
    [1] => 9595
    [2] => 8625
    [3] => 18368
    [4] => 18363
    [5] => 18371
)

    class User extends Eloquent  {

            protected $table = 'users';
            protected $primaryKey = 'id';
            protected $guarded = array();
            protected $hidden = array();

        public function mutual_friends() {
           return $this->belongsToMany('User', 'friends', 'follower_id', 'following_id');
        }


        public static function get_users_infomation_by_ids($login_id, $users_arr = array()) {
            $users = User::where(function($sql) use($login_id, $users_arr) {
                        $sql->whereIn('id', $users_arr);
                    })->with(['mutual_friends'=>function($sql) use($login_id){
                        $sql->where('follower_id','=',$login_id);
                        $sql->orWhere('following_id','=',$login_id);
                    }])->get(array('id', 'username', 'full_name', 'is_live', 'message_privacy', 'picture'));
            return (!empty($users) && count($users) > 0) ? $users->toArray() : array();
        }
   }
<pre>Array
(
    [0] => Array
        (
            [id] => 87
            [username] => rizwan.saleem
            [full_name] => Rizwan Saleem
            [is_live] => 0
            [message_privacy] => 0
            [picture] => vmiboiagcropped-5589294861513766548.jpg
            [mutual_friends] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [username] => yahoo
                            [pivot] => Array
                                (
                                    [following_id] => 87
                                    [follower_id] => 2
                                )
                        )
                )
        )
    [1] => Array
        (
            [id] => 8625
            [username] => hassan_shahid
            [full_name] => Hassan Shahids
            [is_live] => 0
            [message_privacy] => 0
            [picture] => profile_default.jpg
            [mutual_friends] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [username] => yahoo
                            [pivot] => Array
                                (
                                    [following_id] => 8625
                                    [follower_id] => 2
                                )
                        )
                )
        )
    [2] => Array
        (
            [id] => 9595
            [username] => majo
            [full_name] => Majo mike
            [is_live] => 1
            [message_privacy] => 0
            [picture] => rwls1p2jcropped507977901504873847.jpg
            [mutual_friends] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [username] => yahoo
                            [pivot] => Array
                                (
                                    [following_id] => 9595
                                    [follower_id] => 2
                                )
                        )
                )
        )
    [3] => Array
        (
            [id] => 18363
            [username] => asif_ilsa
            [full_name] => Asif Ilsa 
            [is_live] => 1
            [message_privacy] => 0
            [picture] => ydi1dmtdupload-image1512648978.jpg
            [mutual_friends] => Array
                (
                )
        )
    [4] => Array
        (
            [id] => 18368
            [username] => ali.abbas
            [full_name] => Ali Abbas 1
            [is_live] => 1
            [message_privacy] => 0
            [picture] => dsczoljfcropped4868760551505544665.jpg
            [mutual_friends] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [username] => yahoo
                            [pivot] => Array
                                (
                                    [following_id] => 18368
                                    [follower_id] => 2
                                )
                        )
                )
        )
    [5] => Array
        (
            [id] => 18371
            [username] => maju
            [full_name] => Mani Dude
            [is_live] => 0
            [message_privacy] => 2
            [picture] => ndtcihu7upload-image1503915762.jpg
            [mutual_friends] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [username] => yahoo
                            [pivot] => Array
                                (
                                    [following_id] => 18371
                                    [follower_id] => 2
                                )
                        )
                )
        )
)
friends表包含以下列{id,follower\u id,follower\u id}

现在我希望任何一个条件都为true,然后函数返回true和用户信息

输出

在上面的outpu id->18363中没有相互记录,这只是因为
用户不跟随登录用户,甚至登录用户也不跟随该用户。

问题是什么???@Sohel0415问题是,假设2个用户跟随4,4也跟随2,还有另一个用户5跟随2,但2不跟随5,所以当我获取4和5的用户信息时,我还需要与用户2的好友关系信息登录用户=2Array4,5它返回这些用户的好友信息,这些用户相互跟踪或只有登录用户表示2个用户跟踪,但如果另一个用户跟踪登录用户但登录用户未跟踪,则返回empty@RizwanSaleem在$users\u arr中包含您想要获取的所有ID,可能是您缺少一些ID hereLogin User=2数组[0] => 19071 [1] => 87 [2] => 9595 [3] => 8625 [4] => 18368 [5] => 18363 [6]=>18371在数组中用户每个用户都有朋友信息,但只有18363个用户没有朋友信息,因为loign user没有跟随此用户,但此用户跟随登录用户。那么您现在得到的是什么,您的期望是什么?我的期望是,如果两个用户都在跟随,或者如果其中任何一个都在跟随,则返回朋友信息他们跟随对方,但我得到的是,如果两者都跟随对方或只有登录用户跟随其他用户,然后我收到朋友的信息
$users = User::whereIn('id', $users_arr)
       ->with('mutual_friends')
       ->where(function ($query)  use ($login_id){
            $query->whereRaw('users.id=friends.follower_id OR users.id=friends.following_id')->where(function($q) use ($login_id){
              $q->where('follower_id',$login_id);
           });
        })
       ->get(array('id', 'username', 'full_name', 'is_live', 'message_privacy', 'picture'));