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')代码>也有效。