Zugriffsberechtigungen werden in der Datei „model.php' in Laravel abgefragt
P粉549412038
P粉549412038 2024-02-26 16:58:05
0
1
500

Ich habe eine Beziehung und eine Funktion in meiner User.php;

class User extends Model
{
    public function children()
    {
        return $this->hasMany(self::class, 'level1_user_id')
            ->select(['id', 'first_name', 'last_name', 'level1_user_id']);
    }

    public function grandchildren()
    {
        return $this->children()->with(['grandchildren']);
    }
}

Das ist mein Controller.php:

public function allChildren()
{
    $user = User::where('id', 3)->with(['grandchildren' =>
        function ($query) {
            $query->where('first_name', 'rose');
        }
    ])->first();
    return $user;
}

Wenn ich das Enkelkind anhänge, werden alle Knoten dieses Baums zurückgegeben. Ich möchte eine Bedingung zuweisen und den Knoten mit dem Namen „Rose“ erhalten, aber ich kann dies nur für die erste Ebene tun; wie greife ich auf diese Abfrage zu:

$query->where('first_name', 'rose');

Ist es möglich, auch in User.php eine Abfrage für andere in meiner Enkelfunktion festzulegen?

Ich möchte so etwas machen:

class User extends Model
{
    public function children()
    {
        return $this->hasMany(self::class, 'level1_user_id')
            ->select(['id', 'first_name', 'last_name', 'level1_user_id']);
    }

    public function grandchildren(Query $inputQuery)
    {
        return $this->children()->with(['grandchildren' => function ($query) use ($inputQuery) {
        $query->$inputQuery;
    }]);
    }
}

P粉549412038
P粉549412038

Antworte allen(1)
P粉674757114

我认为您正在寻找 hasManyThrough

hasManyThrough(GrandChildren::class, Children::class);
    }
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage