Laravel搭建后台登录系统步骤详解_php实例_脚本之家

正文实例汇报了Laravel框架达成的rbac权限管理操作。分享给大家供我们参照他事他说加以考察,具体如下:

正文实例呈报了Laravel搭建后台登陆系统的主意。分享给我们供我们仿照效法,具体如下:

介绍:依照差别的权杖,在菜单栏突显区别的作用,只对菜单进行了限定,若对路由也拓宽限定,请自行完备

今天想用laravel搭建多个后台系统,就需求最简便的这种,有客商登录系统,试用了下,以为laravel的客商登陆那块做的还真happy。当然,前提就是,你要的客商管理连串是最简易的这种,正是从未客商权限,能登入就好。

1、建表(客商表、角色表、权限表、客户剧中人物表、剧中人物权限表)

自己那边就不要暗中同意的user表做例子了,那样相当轻易和laravel的片段暗中认可设置混淆。

CREATE TABLE IF NOT EXISTS mr_role PRIMARY KEY AUTO_INCREMENT COMMENT '自增id',name varchar NOT NULL COMMENT '角色名')ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT='角色表';CREATE TABLE IF NOT EXISTS mr_privilege PRIMARY KEY AUTO_INCREMENT COMMENT '自增id',name varchar NOT NULL COMMENT '权限名',route varchar NOT NULL COMMENT '权限所有的路由',description varchar NOT NULL COMMENT '权限的描述')ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT='权限表';CREATE TABLE IF NOT EXISTS mr_user_role PRIMARY KEY AUTO_INCREMENT COMMENT '自增id',user_id int NOT NULL COMMENT '用户id',role_id int NOT NULL COMMENT '角色id')ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT='用户角色表';CREATE TABLE IF NOT EXISTS mr_role_privilege PRIMARY KEY AUTO_INCREMENT COMMENT '自增id',role_id int NOT NULL COMMENT '角色id',privilege_id int NOT NULL COMMENT '权限id')ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT='角色权限表';

先是确定,后台的客商表,我陈设表叫做badmin,各类管理员有客商名,有别名,有密码

2、在客户模型和剧中人物模型中落实多对多

那边玩个花,使用laravel的migration来树立表

class User extends Model{ protected $primaryKey = 'id'; protected $table = 'user'; public $timestamps = false; public $guarded = []; public function roles() { return $this->belongsToMany('AppModelRole', 'user_role', 'user_id', 'role_id')->withPivot; }}class Role extends Model{ protected $table = 'role'; protected $primaryKey = 'id'; public $timestamps = false; public $guarded = []; public function privileges() { return $this->belongsToMany('AppModelPrivilege', 'role_privilege', 'role_id', 'privilege_id')->withPivot(['role_id', 'privilege_id']); }}

1 安装好最中央的laravel框架

3、将菜单视为公共区域,在appProvidersAppServiceProvider.php里写

官方澳门新永利下载,2 创建migration文件:

public function boot(){ View::composer('layout.slide', function { $roles_id = User::find['id'])->roles->map { return $role->id; }); // 使用map,最终得到的结果$roles_id = [1, 2, ...] $privileges = []; foreach  { $privileges = array_merge($privileges, Role::find->privileges->map { return [$privilege->name, $privilege->route]; })->toArray; } // 得到的结果,$prpvileges = [['index/..', '列表'], ['', '']] $view->with('privileges', $privileges); });}

./artisan migrate:make create-badmin-table

4、菜单的兑现(能够一贯遍历二个div,小编那边因为有例外的体制,便用了推断)

3 发掘app/database/migration/下边多了贰个php文件:

@foreach ($privileges as $privilege) @if ($privilege[1] == 'key/index' && $privilege[0] == '键名列表')  键名列表 @endif @if ($privilege[1] == 'key/create' && $privilege[0] == '添加键名')  添加键名 @endif @if ($privilege[1] == 'project/index' && $privilege[0] == '项目列表')  项目列表 @endif @if ($privilege[1] == 'project/create' && $privilege[0] == '添加项目')  添加项目 @endif @if ($privilege[1] == 'user/index' && $privilege[0] == '用户列表')  用户列表 @endif @if ($privilege[1] == 'user/create' && $privilege[0] == '添加用户')  添加用户 @endif @endforeach

2014_10_19_090336_create-badmin-table.php

越来越多关于Laravel相关内容感兴趣的读者可查看本站专项论题:《Laravel框架入门与升级教程》、《php卓越开辟框架总括》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php习以为常数据库操作技术汇总》

4 往up和down里面增加内容;

盼望本文所述对我们基于Laravel框架的PHP程序设计具备利于。

increments; $table->string->unique(); $table->string->unique(); $table->string->unique(); $table->string; $table->timestamps; } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop; }}

5 配置好local的database,app/config/local/database.php

 PDO::FETCH_CLASS, 'default' => 'mysql', 'connections' => array( 'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'test', 'username' => 'yejianfeng', 'password' => '123456', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), ), 'migrations' => 'migrations',);

6 创制数据表:

./artisan migrate –env=local

其有的时候候去数据库看,就发掘多了一张badmin表,数据结构如下:

CREATE TABLE `badmin`  unsigned NOT NULL AUTO_INCREMENT, `nickname` varchar COLLATE utf8_unicode_ci NOT NULL, `username` varchar COLLATE utf8_unicode_ci NOT NULL, `email` varchar COLLATE utf8_unicode_ci NOT NULL, `password` varchar COLLATE utf8_unicode_ci NOT NULL, `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY , UNIQUE KEY `badmin_nickname_unique` , UNIQUE KEY `badmin_username_unique` , UNIQUE KEY `badmin_email_unique`  ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

要问这里怎么多出了create_at和update_at,这是laravel默感觉种种表创造的字段,何况在应用Eloquent举办增加和删除改查的时候能自动更新那多个字段

7 创建个Model:

 'required|alpha_num|min:2', 'username' => 'required', 'email'=>'required|email|unique:badmin', 'password'=>'required|alpha_num|between:6,12|confirmed', ];}

那边不可不要implements UserInterface和RemindableInterface

发表评论

电子邮件地址不会被公开。 必填项已用*标注