Maison  >  Questions et réponses  >  le corps du texte

Autorisations d'accès demandées dans le fichier model.php dans Laravel

J'ai une relation et une fonction dans mon 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']);
    }
}

Voici mon contrôleur.php :

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

Lorsque j'ajoute le petit-enfant, il renvoie tous les nœuds de cet arbre ; Je veux attribuer une condition et obtenir le nœud portant le nom « rose » mais je ne peux le faire que pour le premier niveau, comment accéder à cette requête :

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

Est-il également possible de définir une requête pour les autres dans la fonction de mon petit-enfant dans User.php ?

Je veux faire quelque chose comme ceci :

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粉549412038P粉549412038235 Il y a quelques jours462

répondre à tous(1)je répondrai

  • P粉674757114

    P粉6747571142024-02-27 15:27:52

    Je pense que vous recherchez hasManyThrough

    hasManyThrough(GrandChildren::class, Children::class);
        }
    }

    répondre
    0
  • Annulerrépondre