课程地址: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
}
- 相关文章
- 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
- 我的项目
- 【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