composer安装命令:
curl -sS https://getcomposer.org/installer | php # 下载composer.phar
mv composer.phar /usr/local/bin/composer # 移动composer.phar 并更名为composer,让composer可以全局使用
laravel安装器:
composer global require "laravel/installer"
vi ~/.zshrc编写环境变量做全局配置:
export PATH="$HOME/.composer/vendor/bin:$PATH"
进入www目录进行安装:
laravel new MyProject
启动环境的命令为:
php artisan serve
编辑Nginx中的默认站点目录配置成我们的项目名。
server {
listen 80;
server_name localhost;
root /usr/local/var/www/blog;
access_log /usr/local/var/log/nginx/default.access.log main;
location / {
index index.html index.htm index.php;
autoindex on;
include /usr/local/etc/nginx/php-fpm;
}
error_page 404 /404.html;
error_page 403 /403.html;
}
小记:创建控制器的php artisan命令为:
php artisan make:controller IndexController
小记:测试是否有数据库配置是否正确:在控制器中编写代码测试,在路由中配置访问路径。
$pdo = DB::connection()->getPdo();
视图模块与js、css文件引入,置于public文件夹。
导入laravel验证码类的方法:
1、通过composer安装命令
composer require mews/captcha
2、config文件夹中app.php进行配置项配置
'providers' => [
// ...
Mews\Captcha\CaptchaServiceProvider::class,
]
......
'aliases' => [
// ...
'Captcha' => Mews\Captcha\Facades\Captcha::class,
]
3、在项目目录下使用命令生成chptcha:
php artisan vendor:publish
4、获得图片captcha_img()方法即可,如有疑问查询github扩展库
5、视图层,刷新验证码代码:
"{{ url('/admin/code') }}" οnclick="refreshVerify()" id="verify" />
function refreshVerify(){
$url = "{{ url('/admin/code') }}";
$url = $url + "?" + Math.random();
document.getElementById('verify').src = $url;
}
6、验证逻辑:
/** * 登陆验证操作 * @param Request $request * @return true view false back() */
public function dologin(Request $request){
//动态验证规则:
$rules = ['code' => 'required|captcha'];
$codeValidate = Validator::make($request->all(),$rules);
if($codeValidate->fails()){
return back()->with('msg','验证码错误');
}
//获取加密与解密码的一种方式crypt中encrypt()加密,decrypt()解密
// echo encrypt($request->password);
$user = User::first();
// dd($user);
if($user->username != $request['username'] && decrypt($user->password) != $request['password']){
return back()->with('msg','用户名或者密码错误');
}
session(['user'=>$user]);
return redirect('admin/index'); //跳转后台首页
}
后台页面的子视图设置:在目录resource->layouts目录->admin.blade.php文件下面代码:
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="/admin/style/css/ch-ui.admin.css">
..... //共有的文件夹
head>
<body>
@yield('content') //共有部分的,要被继承重写的
body>
html>
视图中应用:
@extends('layouts.admin') //注意路径
@section('content')
....这里写重写部分的代码即可。
@endsection
中间件实现访问控制:创建中间件php artisan 命令
php artisan make:middleware AdminLogin//中间件名
AdminLogin.php中使用中间件来判断是否已经登陆:
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */
public function handle($request, Closure $next)
{
//在这里对session进行判断,如果没有session值则让用户回到登陆页面
if(!session('user')){
return redirect('admin/login'); //跳转
}
return $next($request);
}
路由设置:
//使用中间件的路由设置
Route::group(['middleware' => ['web','admin.login']], function () {
Route::get('admin/index','Admin\IndexController@index');
Route::get('admin/info','Admin\IndexController@info');
});
1.我们主要对超级管理员的密码进行修改,在修改的时候我们应该要清楚,这么一个流程继你修改密码提交表单后,在控制器中应该对传过来的数据进行表单的验证,验证的方法以及修改密码的方法如下,如果想更清楚的了解验证规则可参考文档。
/** * 修改密码的操作。 * @param Request $request */
public function updpass(Request $request) {
$rules = ['password'=>'required|between:6,20|confirmed']; //验证规则
//自定义的验证规则提示信息
$message = [
'required'=>'新密码不能为空!',
'between'=>'新密码在6~20位之间',
'confirmed'=>'请确认密码',
];
//动态验证数据
$validator = Validator::make($request->all(),$rules,$message);
if($validator->fails()){
return redirect('admin/pass')->withErrors($validator)->withInput();
}else{
//验证要更改原密码是否正确,正确再进行修改
$user = User::first();
$_password = Crypt::decrypt($user->password);
if($_password == $request->input('password_o')){
$user->password = Crypt::encrypt($request->input('password'));
$user->update();
// return redirect('admin/info');
$msg = ['msg'=>'密码修改成功'];
return back()->withErrors($msg);
}else{
$msg = ['msg'=>'原来的密码错误'];
return redirect('admin/pass')->withErrors($msg)->withInput();
}
}
}