laravel自学笔记

来源:互联网 发布:仿凡科建站系统源码 编辑:程序博客网 时间:2024/06/14 10:20

laravel笔记

第一节

composer安装命令:

curl -sS https://getcomposer.org/installer | php  # 下载composer.pharmv 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、视图层,刷新验证码代码:

<img src="{{ url('/admin/code') }}" onclick="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文件下面代码:

<!DOCTYPE html><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();        }    }}
原创粉丝点击