laravel学习笔记
首页->学习资料->编程语言->php教程->laravel 关键词: 发布时间:2017-03-09 01:46:39 浏览次数:1783

课程地址:https://ke.qq.com/course/135139#term_id=100151501


------------------------------------------第一课笔记------------------------------

cmd下到站点目录下:

create-project laravel/laravel blog --prefer-dist


将虚拟站点指向public目录


数据库配置:

config/database.php下加表前缀

'prefix' => env('DB_PREFIX', ''),

根目录下.env数据库配置中加上

DB_PREFIX=hurong_


建控制器:

php artisan make:controller IndexController


路由配置:

app/Http/routes.php中

Route::get('admin/login','Admin\LoginController@index');


数据库操作:

<?php


namespace App\Http\Controllers\Admin;


use Illuminate\Http\Request;

use Illuminate\Support\Facades\DB;


use App\Http\Requests;


class LoginController extends CommonController

{

    //

    public function index()

    {

        $pdo = DB::connection()->getPdo();

        dd($pdo);

        return view('admin.login');//模板对应在/resources/views/admin/login.blade.php

    }

}


模板文件路径

<link rel="stylesheet" href="{{asset('resources/views/admin/style/css/admin.css')}}"/>


------------------------------------------第2课笔记------------------------------

如果原生的session不能用,则要在index.php中开启session_start();

验证码:

路由中增加路由

控制器中引入验证码类,new的时候注意命名空间 new \Code();以实验路径为准

模板中引用路径:

<img src="{{URL('admin/code')}}" onclick="this.src='{{URL('admin/code')}}?'+Math.random()" />


------------------------------------------第3课笔记------------------------------

登录表单提交

路由中要用any,表单get,post方式都匹配

Route::any('admin/login','Admin\LoginController@login');

在控制器中用这种方式判断是否提交表单,类似thinkphp中的IS_POST:

if($input = Input::all()){//use Illuminate\Support\Facades\Input;

post提交表单

if($code_server!=$code_input){//strtoupper转大写

return back()->with('msg','验证码错误');//这个错误信息是否在session中的,模板显示方式见下面

}

}else{

显示get请求时的模板

}



提交报错是要在模板中加csrf表单验证token:

<form>表单中加

{{csrf_field()}}

</form>


模板中显示错误提示:

@if(session('msg'))

<p>{{session('msg')}}</p>

@endif


------------------------------------------第4课笔记------------------------------

use Crypt;

crypt密码加,解密

1,加路由,用any

2,在方法中加密:加密后的长度很长,表的设计上要设大点varchar(255)以上

$jiami_str=Cryp::encrypt(一个字符串);//加密得到一个随机字符串

解密:

Cryp::decrypt($jiami_str);

将数据库中存储的密码解密后与输入的密码进行对比判断是否正确


【创建模型】进行数据库操作

php artisan make:model User

以上创建用户模型;

在app/Http下建Model目录,将User模型移动到这个目录下,此文件路径:app/Http/User.php

改命名空间 App\Http\Model;

class User extends Model{

protected $table='user';//表名

protected $primaryKey='user_id';//主键字段名

public $timestamps=false;//系统默认的更新或创建时间字段,表里没用到,所以为false


}


控制器的方法中读数据库表中的数据:

$user = User::all();//all查所有二维数据,first()查第一条,一维数据

if(Crypt::decrypt($user->password) != $user_password_input){

密码输错了

}


//验证通过,将用户信息存储在session中

session(['user'=>$user]);

dd(session('user'));//取session


登录成功跳转

return redirect('admin/index');

------------------------------------------第5课笔记------------------------------

欢迎界面

建路由

建控制器,拖目录,改命名空间

public function IndexController extends CommonController{

public function index(){

return view('welcome');//系统默认欢迎界面,admin.index自己定的模板

}

}


模板中用blade模板引擎输出变量

{{PHP_OS}}输出操作系统;其实就是$_SERVER中的,如{{$_SERVER['SERVER_SOFTWARE']}}就是php中的$_SERVER['SERVER_SOFTWARE']

也可以用原生php在模板中,如<?php echo '11';?>

更多见:bbs.houdunwang.com/thread-101222-1-1.html


时区修改在/config/app.php中


模板公用模板,模板头,模板底部:

当前模板中:

@extends('layouts.admin') 这个是模板公共部分,路径:resources/views/layouts/admin.blade.php

@section('content')

这中间放不一样的模板内容

@endsection


公共模板admin.blade.php设置

<html>

<head>

css引入

js引入

<body>

@yield('content')  这个表示其它模板的替换区

</body>

</html>



------------------------------------------第6课笔记------------------------------

后台未登录的权限检测

用中间件实验,不太好记笔记,看视频吧


------------------------------------------第7课笔记------------------------------

验证数据,改密码

$rules=[

'password'=>'required|between:6,20|confirmed', //注意要将表单中的确认密码input的name名改成password_confirmation


];

$mesage=[

'password.required'=>'密码不能为空',

'password.between'=>'密码长度6到20位',

'password.confirmed'=>'两次输入的密码不一样',

];

$validator = Validator::make($input,$rules,$message);//use Validator;

if($validator->passes()){

$user = User::first();

Crypt::decrypt($user->user_password);//解析密码进行对比

如果不对

retrn back()->with('errors','密码输入错误');//注意是errors

如果对,更新数据库

$user->user_password = Crypt::encrypt($input['password']);

$user->update();//或save();

}else{

验证不通过

$result=$validator->errors()->all();

dd($result);

return back()->withErrors($validator);//将错误信息传过来,有s


//在模板中显示错误:

@if(count($errors)>0)

@foreach($erors->all() as $error)

{{$error}}

@endforeach

@endif

}


赞:(0)
踩:(0)
相关文章
laravel 中悲观锁 & 乐观锁的使用
laravel整合dingo/api方法步骤:jwt
一个简单的laravel分表联合查询
laravel页面静态化的方法
laravel对具体的路由不采用csrfTok
laravel不转义富文本中html标签
laravel监听sql并生成日志,php art
laravel框架核心-反射、依赖注入、
laravel框架核心-serviceProvider
laravel启动流程(生命周期)
热门文章
win7中将文件拷贝到虚拟机linux下
phpexcel设置行高及列宽,背景颜色,
rabbitmq无法启动
intellij idea不显示git push按钮
php7中使用mongodb的aggregate进行
centos7.4 64位下swoole安装及配置
laravel页面静态化的方法
navicate连接mycat报1184错误
单点登录sso原理及php实现方式及de
devops-jenkins容器为pending状态
好评文章
phpexcel设置行高及列宽,背景颜色,
php7中使用mongodb的aggregate进行
intellij idea打开文件所在文件夹
windows下使用MongoDB Compass Com
win7中将文件拷贝到虚拟机linux下
laravel 中悲观锁 & 乐观锁的使用
单点登录sso原理及php实现方式及de
navicate连接mycat报1184错误
rabbitmq无法启动
laravel整合dingo/api方法步骤:jwt
标签
rabbitmq mysql备份 elasticsearch golang swoole
我的项目
【github】www.github.com/hurong241
【码云】gitee.com/hu_rong/projects
【docker hub】hub.docker.com/repositories/hurong241
【packagist】packagist.org/users/hurong241/packages
站点信息
建站时间:2011年
文章数:607篇
浏览数:940273
粤ICP备18028092号-1  微信:hurong241