Obtenir le tableau d'ids du modèle de laravel lié qui a la relation de belongsToMany
J'ai un modèle de Rôle qui appartient à de nombreux Utilisateurs.
Class Role {
public $fillable = ["name"];
public function users()
{
return $this->belongsToMany('App/Models/User')->select(['user_id']);
}
}
Lorsque je récupère des utilisateurs à l'aide de requêtes dans le Rôle. Je veux qu'Il serait de retour seulement user_ids tableau
Role::with("users")->get();
il doit retourner le résultat suivant
[
{
"name": "Role1",
"users" : [1,2,3]
},
{
"name": "Role2",
"users" : [1,2,3]
}
]
Actuellement, il donne la sortie suivante
[
{
"name": "Role1",
"users" : [
{
user_id : 1
},
{
user_id : 2
},
{
user_id : 3
}
},
{
"name": "Role2",
"users" : [
{
user_id : 1
},
{
user_id : 2
},
{
user_id : 3
}
]
}
]
source d'informationauteur sp11
Vous devez vous connecter pour publier un commentaire.
Personnellement, je ne voudrais pas de modifier les
users()
relation, mais peut-être ajouter un accesseur pour les Id d'utilisateurAlors vous avez encore une relation de travail, mais il peut accéder à l'Id d'utilisateur comme un tableau dans le Rôle de la réponse. Si cela ne fonctionne pas pour vous, tel que mentionné par @Créateur, vous pourriez probablement juste ajouter
->lists('id')
dans la relation plutôt que de laselect()