que plantillas motor index gratis for entre diferencias descargar content ciclo php laravel eloquent

php - plantillas - Laravel-Eloquent devuelve solo un valor



laravel foreach index (2)

¿Cómo puedo devolver un valor de una relación de belongsToMany?

Esta es mi relación:

public function role() { return $this->belongsToMany(''App/Role''); }

Ahora cuando quiero acceder al Nombre de la función, tengo que hacer lo siguiente:

Auth::user()->role[0]->name

Pero solo quiero hacer

Auth::user()->role

Pero ahora mi pregunta es: "¿Cómo puedo hacer eso?"


para hacer esto, necesita agregar un atributo personalizado al modelo de usuario de la siguiente manera:

Modelo de usuario:

protected $appends = [''role'']; // add new attribute to user model public function getRoleAttribute() { return $this->roles->first(); // don''t use roles() it would execute every time } public function roles() { return $this->belongsToMany(''App/Role''); }

ahora puedes usar

Auth::user()->role


Auth::user()->role()->first()

Además de la pregunta en sí, te sugiero que uses el nombre plural para las relaciones de belogsToMany: es una práctica recomendada común y hace que el código sea mucho más expresivo.

public function roles() { return $this->belongsToMany(''App/Role''); } Auth::user()->roles()->first()