Ich schaffe viele zu viele Beziehung zwischen Benutzern und Rollen wie folgt aus:eloquent: Abfrage viele zu viele Beziehung
Benutzermodell:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* The roles that belong to the user.
*/
public function roles()
{
return $this->belongsToMany('App\Role');
}
}
Rollenmodell:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
/**
* The users that belong to the role.
*/
public function users()
{
return $this->belongsToMany('App\User');
}
}
meine Frage ist, wie ich nur Benutzer bekommen kann, die zu einem bestimmten Rollennamen gehören, zum Beispiel, wenn ich einen Rollennamen namens "author" habe, möchte ich alle Autorenbenutzer bekommen, so etwas in sql:
SELECT users.id, users.name
FROM users, roles, role_user
WHERE users.id = role_user.user_id
AND role_user.role_id = roles.id
AND roles.name="author";
Anmerkung: Ich verwende Laravel 5,4
dank @GauravRai, ich brauche nur Benutzer-ID und Name nicht alle Felder auszuwählen, ist es eine Möglichkeit, das zu tun? – YouneL
Aktualisierte Antwort, werfen Sie einen Blick –
Wie zu prüfen, nicht nach Ihrer Antwort? @ Gaurav Rai – Fawel