Php Larvel:仅获取具有';用户';用户表中的角色

Php Larvel:仅获取具有';用户';用户表中的角色,php,laravel,Php,Laravel,我有用户、角色表,其中每个用户都在角色表中附加了一个角色。我需要在我的UserController中获取role\u user中关联的角色名为“user”的所有用户(不包括管理员) 我现在有这个: UserController: class UserController extends Controller { public function index() { $users = User::all(); // Get here only users with role

我有
用户、角色
表,其中每个
用户
都在
角色
表中附加了一个
角色
。我需要在我的
UserController
中获取
role\u user
中关联的角色名为“user”的所有用户(不包括管理员)

我现在有这个:

UserController:

class UserController extends Controller {

    public function index() {
        $users = User::all(); // Get here only users with role 'user' in role_user table

        return view( 'admin.users.index' )
            ->with( 'users', $users )
        ;
    }
}
创建用户表:

class CreateUsersTable extends Migration {

    public function up() {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('email')->unique();
            $table->string('name');
            $table->string('last_name');
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }
}
class CreateRolesTable extends Migration {

    public function up() {
        Schema::create('roles', function (Blueprint $table) {
            $table->id();
            $table->string('name')->unique();
            $table->string('description');
            $table->timestamps();
        });
    }
}
class CreateRoleUserTable extends Migration {

    public function up() {
        Schema::create('role_user', function (Blueprint $table) {
            $table->id();
            $table->string('user_id')->unique();
            $table->integer('role_id')->unsigned();
            $table->timestamps();
        });
    }
}
创建角色表:

class CreateUsersTable extends Migration {

    public function up() {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('email')->unique();
            $table->string('name');
            $table->string('last_name');
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }
}
class CreateRolesTable extends Migration {

    public function up() {
        Schema::create('roles', function (Blueprint $table) {
            $table->id();
            $table->string('name')->unique();
            $table->string('description');
            $table->timestamps();
        });
    }
}
class CreateRoleUserTable extends Migration {

    public function up() {
        Schema::create('role_user', function (Blueprint $table) {
            $table->id();
            $table->string('user_id')->unique();
            $table->integer('role_id')->unsigned();
            $table->timestamps();
        });
    }
}
创建角色用户表:

class CreateUsersTable extends Migration {

    public function up() {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('email')->unique();
            $table->string('name');
            $table->string('last_name');
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }
}
class CreateRolesTable extends Migration {

    public function up() {
        Schema::create('roles', function (Blueprint $table) {
            $table->id();
            $table->string('name')->unique();
            $table->string('description');
            $table->timestamps();
        });
    }
}
class CreateRoleUserTable extends Migration {

    public function up() {
        Schema::create('role_user', function (Blueprint $table) {
            $table->id();
            $table->string('user_id')->unique();
            $table->integer('role_id')->unsigned();
            $table->timestamps();
        });
    }
}
如何实现这一点?

在User.php模型中:

public function roles()
    {
        return $this->belongsToMany('App\Role');
    }
在控制器中:

$users = User::whereHas('roles' , function($q){
   $q->whereName('user');
})->get();

试试elequent而不是Great Thank<代码>$query->where('name','user')也有效。