如何使用laravel搭建后台登录系统
1 安装好最基本的laravel框架
2 创建migration文件:
3 发现app/database/migration/下面多了一个php文件:
4 往up和down里面增加内容;
<?php use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration; class CreateBadminTable extends Migration { /**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('badmin', function($table)
{
$table->increments('id');
$table->string('nickname', )->unique();
$table->string('username', )->unique();
$table->string('email', )->unique();
$table->string('password', );
$table->timestamps();
});
} /**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('badmin');
} }
5 配置好local的database,app/config/local/database.php
<?php
return array(
'fetch' => PDO::FETCH_CLASS,
'default' => 'mysql',
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => ’test',
'username' => 'yejianfeng',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
'migrations' => 'migrations',
);
6 创建数据表:
CREATE TABLE `badmin` (
`id` int() 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 (`id`),
UNIQUE KEY `badmin_nickname_unique` (`nickname`),
UNIQUE KEY `badmin_username_unique` (`username`),
UNIQUE KEY `badmin_email_unique` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
7 创建个Model:
<?php use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface; class Badmin extends Eloquent implements UserInterface, RemindableInterface { use UserTrait, RemindableTrait; protected $table = 'badmin'; protected $hidden = array('password'); public static $rules = [
'nickname' => 'required|alpha_num|min:2',
'username' => 'required',
'email'=>'required|email|unique:badmin',
'password'=>'required|alpha_num|between:6,12|confirmed',
];
}
8 把model和Auth关联上,修改app/config/auth.php
<?php
return array(
// 默认的用户验证驱动
// 可以是database或者eloquent
'driver' => 'eloquent',
// 只有驱动为eloquent的时候才有用
'model' => 'Badmin',
);
9 好了,这个时间其实逻辑部分已经搭建完毕了,你已经可以在controller种使用
10 下面要建立一个用户登录页面:

11 设置路由:
<?php // 不需要登录验证的接口
Route::get('/', ['as' => 'user.login','uses'=>'UserController@getLogin']);
Route::get('user/login', ['as' => 'login', 'uses' => 'UserController@getLogin']);
Route::post('user/login', ['as' => 'login', 'uses' => 'UserController@postLogin']); // 需要登录验证才能操作的接口
Route::group(array('before' => 'auth'), function()
{
Route::get('user/logout', ['as' => 'logout', 'uses' => 'UserController@getLogout']);
Route::get('user/dashboard', ['as' => 'dashboard', 'uses' => 'UserController@getDashboard']);
});
12 设置controller:
<?php
class UserController extends BaseController {
// 登录页面
public function getLogin()
{
return View::make('user.login');
}
// 登录操作
public function postLogin()
{
if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password')))) {
return Redirect::to('user/dashboard')
->with('message', '成功登录');
} else {
return Redirect::to('user/login')
->with('message', '用户名密码不正确')
->withInput();
}
}
// 登出
public function getLogout()
{
Auth::logout();
return Redirect::to('user/login');
}
public function getDashboard()
{
return View::make('user.dashboard');
}
// 添加新用户操作
public function getCreate()
{
return View::make('user.create');
}
// 添加新用户操作
public function postCreate()
{
$validator = Validator::make(Input::all(), User::$rules);
if ($validator->passes()){
$bAdmin = new Badmin();
$bAdmin->nickname = Input::get('nickname');
$bAdmin->username = Input::get('username');
$bAdmin->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();
Response::json(null);
} else {
Response::json(['message' => '注册失败'], );
}
}
}
13 设置下filter,app/filter.php
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', );
}
else
{
return Redirect::guest('/');
}
}
});
14 设置views/user/login.blade.php

后记
如何使用laravel搭建后台登录系统的更多相关文章
- flask-日料网站搭建-后台登录
引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,今天教大家实现后台登录功能,比较简单. 本节知识:表单标签,表单验证,数据查询,模板 pytho ...
- 使用SSH搭建用户注册登录系统
[转]http://blog.sina.com.cn/s/blog_a6a6b3cd01017c57.html 什么是SSH? SSH对应 struts spring hibernatestruts ...
- sso单点登录系统(解决session共享)
场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服 ...
- Ext.NET 4.1 系统框架的搭建(后台) 附源码
Ext.NET 4.1 系统框架的搭建(后台) 附源码 代码运行环境:.net 4.5 VS2013 (代码可直接编译运行) 预览图: 分析图: 上面系统的构建包括三块区域:North.West和C ...
- Laravel 5.2 中多用户认证实现(前台和后台登录)
Laravel 5.2中多用户认证支持,即同时允许不同数据表用户(如前台用户.后台用户.app用户等)登录认证.下面我们就来简单介绍多用户登录及注册功能实现. 1.生成认证脚手架 首先我们使用Lara ...
- SSM-框架搭建-tank后台学习系统
一.前言 最近收到很多网友给我私信,学习软件开发有点吃力,不知道从何处开始学习,会点基础但是做不出来什么项目, 都想放弃了.我就回复道:当下互联网飞速发展,软件开发行业非常吃香而且前景相当不错.希望能 ...
- Laravel5.1 搭建博客 --后台登录
今天咱来实现后台的登录. 首先我们的后台需要三个控制器: PostController:管理文章. TagController:管理文章标签. UploadController:上传文件. 当我们访问 ...
- Django快速搭建博客系统
Django快速搭建博客系统 一.开发环境 Windows 7(64bit) python 3.6 https://www.python.org/ Django 2.0 https://www. ...
- python web框架Flask——后台登录
项目搭建 创建一个项目之后,需要在手动创建几个包(含有__init__.py文件的目录)和文件 1.在主目录下创建配置文件:config.py 2.在主目录下创建扩展文件:exts.py 3.在主目录 ...
随机推荐
- Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Yii2中的环境配置
默认的Debug配置 在入口文件中 defined ( 'YII_DEBUG' ) or define ( 'YII_DEBUG', true ); defined ( 'YII_ENV' ) or ...
- 开始VS 2012中LightSwitch系列的第3部分:我该选择哪一个屏幕模板
[原文发表地址] Beginning LightSwitch in VS 2012 Part 3: Screen Templates, Which One Do I Choose? [原文发表时间] ...
- android知识杂记(三)
记录项目中的android零碎知识点,用以备忘. 1.android 自定义权限 app可以自定义属于自己的权限: <permission android:description="s ...
- Javascript原型模式总结梳理
在大多数面向对象语言中,对象总是由类中实例化而来,类和对象的关系就像模具跟模件一样.Javascript中没有类的概念,就算ES6中引入的class也不过是一种语法糖,本质上还是利用原型实现.在原型编 ...
- 如何基于纯GDI实现alpha通道的矢量和文字绘制
今天有人在QQ群里问GDI能不能支持带alpha通道的线条绘制? 大家的答案当然是否定的,很多人推荐用GDI+. 一个基本的图形引擎要包括几个方面的支持:位图绘制,文字绘制,矢量绘制(如矩形,线条). ...
- .net 时间戳和日期互转
1.时间戳转日期 public static DateTime IntToDateTime(int timestamp) { ,,)).AddSeconds(timestamp); } 调用: ...
- cxf restful
Restful 服务端 1 创建好pojo.dao.service, dao进行数据库操作,service提供服务 @Path("/roomservice") @Produces( ...
- Atitit 图像处理底色变红的解决
Atitit 图像处理底色变红的解决 1.1. 原因 ImageIO bug ,alpha通道应该在保存jpg的时候排除1 1.2. 解决,自己移除alpha通道即可1 2. Image sav ...
- Atitit vod ver 12 new feature v12 pb2 影吧 视频 电影 点播 播放系统v12新特性
Atitit vod ver 12 new feature v12 pb2 影吧 视频 电影 点播 播放系统v12新特性 项目分离从独立的se ver Run mode from brow ex to ...