phplaraveleloquent-relationshipmlm

i have a MLM system. where User hasmany Users. now i want to get all users of root/ node A user. where one user hasmany user (in deep) laravel


i have a MLM system. where User hasmany Users. now i want to get all users of root/ lavel-1 user and where one user hasmany user and each of the users can hasmany user (in deep) laravel.

Here Is relation in model:

    //    All Child Refer
    public function referral_child_users()
    {
        return $this->hasMany(User::class, 'ref_by', 'id')->select('id', 'username', 'ref_by');[!
    }

    //    All Child Refer
    public function referral_multilevel_child_users()
    {
        return $this->referral_child_users()
        ->with('referral_multilevel_child_users');
    }

in Controller:

$user = User::with('referral_multilevel_child_users')->select('id', 'username', 'ref_by')->find(Auth::user()->id);

then i got an error: Undefined array key 0

for example: i want all count of users whose prime parent is A

enter image description here


Solution

  • Change the with function ->with(['referral_multilevel_child_users']);

        //    All Child Refer
        public function referral_multilevel_child_users()
        {
            return $this->referral_child_users()
            ->with(['referral_multilevel_child_users']);
        }