有人能告诉我如何从数据库中恢复用户角色吗?知道我有3个表(用户、角色、用户和角色)迁移:
表用户:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
表角色:
public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('description');
$table->timestamps();
});
}
表用户角色:
public function up()
{
Schema::create('user_role', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('role_id');
$table->timestamps();
});
}
控制器中返回用户列表的函数是membrevis():
public function membrevis()
{
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
$query = DB::table('users')
->join('user_role', 'users.id', '=', 'user_role.user_id')
->join('roles', 'user_role.role_id', '=', 'roles.id')
->where('users.valid','=',1)
->select('users.*','roles.description');
if ($filter != null) {
$query->where('users.name','like','%'.$filter.'%')
->orWhere('roles.description','like','%'.$filter.'%');
}
$itemsPerPage = 8 ;
$currentPage = isset( $_GET['page'] ) && is_numeric( $_GET['page'] ) ? $_GET['page'] : 1;
$urlPattern = '/membre2?page=(:num)';
$totalItems = $query->count();
$donner = $query->offset( ( $currentPage - 1 ) * $itemsPerPage )->limit( $itemsPerPage )->get();
$paginator = new Paginator( $totalItems, $itemsPerPage, $currentPage, $urlPattern );
return view('membre2',['users'=> $donner,'paginator'=> $paginator]);
}
我可以在这里修改什么来恢复用户和他们的角色?外键问题
1条答案
按热度按时间xhv8bpkk1#
我建议您使用laravel模型和关系。
这里是用户和角色之间的关系。这种关系是在所谓的中间表(在本例中是用户角色表)中定义的。
用户和角色之间有一种多对多的关系,一个用户可以有多个角色,一个角色类型可以分配给多个用户。
我建议您阅读以下内容:https://laravel.com/docs/5.2/eloquent-relationships#many-对很多人来说
这是针对Laravel5.2的,但是您将看到每个Laravel5.x版本的文档。在那里你将学习如何建立这些关系以及如何有效地利用它们。