手册:https://laravelacademy.org/

1.中间件的定义Middleware

2.路由的定义和写法

3.控制器Controller之Request

4.控制器Controller之Session

5.控制器Controller之Response

6.控制器Controller之Middleware

7.表单验证

8.模板继承

9.跳转

10.数据库操作 (  http://www.cnblogs.com/fps2tao/p/7859322.html  )

  https://laravelacademy.org/post/19521.html

11.文件上传 (   https://www.cnblogs.com/fps2tao/p/11346476.html   )

使用案例:

----------------------

1.中间件的定义

  1)可以手动新建文件,也可以通过命令生成

php artisan make:middleware OldMiddleware

  2)中间件传2个参数一个是$request和Closure $next (Closure 请参考:http://www.php.net/manual/zh/class.closure.php)

<?php namespace App\Http\Middleware;

use Closure;

class OldMiddleware {

    /**
* Run the request filter.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->input('age') < 200)
{
return redirect('home');
} return $next($request);
} }

  3)Before / After 中间件

  4)注册中间件

    4.1若是希望中间件被所有的 HTTP 请求给执行,只要将中间件的类加入到 app/Http/Kernel.php 的 $middleware 属性清单列表中。

    4.2指派中间件给路由

Route::get('admin/profile', ['middleware' => 'auth', function(){}

  5)可终止中间件(请参阅 https://docs.golaravel.com/docs/5.0/middleware/#registering-middleware)

6) 注册中间件分为三种:分别是全局中间件、中间件组和指定路由中间件,  https://laravelacademy.org/post/9539.html

2.路由的定义和写法

as 给路由起别名 可以在跳转用到

Route::get('user/profile', [
'as' => 'profile', 'uses' => 'UserController@showProfile'
]);
$url = route('profile');
$redirect = redirect()->route('profile');

下面是命名空间,分组,中间价的定义

Route::group(['prefix'=>'admins','namespace' => 'Admins','middleware'=>['cookie']],function() {
//与上面路由相比需要登录验证
Route::get('/report/reportupload','ReportController@ReportUpload');
Route::post('/report/upload','ReportController@upload');
Route::get('/report/getexcel','ReportController@getExcel');
Route::get('/report/filelist','ReportController@fileList'); });

laravel 5.8 的路由写法

3.控制器Controller之Request

        //取值
$request->input('name','未知');//取值和没有的时候默认值
$request->has('name');//判断有没有这个参数
$request->all();//所有值
//判断请求以类型
$request->method();//POST GET
$request->isMethod();//判断是不是GET请求
$request->ajax();//判断是不是ajax请求
//判断请求是不是特定的请求
$request->is('person/*');//判断这个请求是不是person控制器下的方法
//获得当前的url
$request->url();

...

4.控制器Controller之session

  1)使用HTTP Request类的session()方法

  2)session()辅助函数

  3)Session facade

配置文件在:config/session.php 支持多种形式file,dataase,memcached,redis (这里其实可以不变,在.env更改即可)

开启session_start()  在Kernel.php 文件中有一个web的中间件,里面开启了session.  把这个web中间价加入路由中即可。

阅读:  https://laravelacademy.org/post/9546.html

        //取值
$request->input('name','未知');//取值和没有的时候默认值
$request->has('name');//判断有没有这个参数
$request->all();//所有值
//判断请求以类型
$request->method();//POST GET
$request->isMethod('post');//判断是不是GET请求
$request->ajax();//判断是不是ajax请求
//判断请求是不是特定的请求
$request->is('person/*');//判断这个请求是不是person控制器下的方法
//获得当前的url
$request->url(); //1.HtTTP Request session()
$request->session()->put('key','value1');
echo $request->session()->get('key');
//2.session()
session()->put('key2','value2');
session()->get('key2');
//3.Session use Illuminate\Support\Facades\Session;
Session::put('key3','value3');
Session::get('key3'); //详细使用
Session::get('key3','default');
//数组形式存储数据
Session::put(['key4'=>'value4']);
Session::get('key4'); //把数据放到session数组中
Session::push('student','sean');
Session::push('student','imook');
$res = Session::get('student','default');
var_dump($res); //session取值完后删除
$res = Session::pull('student','default');
var_dump($res); //取出所有值
Session::all();
//是否存在
Session::has('key1'); //删除数据
Session::forget('key1'); //删除全部值
Session::flush(); //暂存数据,一次性session
Session::flash('key-flash','val-flash');

5.控制器Controller之Response

响应的常见类型有 :    字符串 ,视图,json,重定向

$data =[
'errCode'=>0,
'errMsg'=>'success',
'data'=>'sean',
];
response()->json($data);
        redirect('person');
redirect('person')->with('message','我是快闪数据');
redirect()->action('StudentController@person')->with('message','我是快闪数据');
redirect()->route('person')->with('message','我是快闪数据');//路由别名 as
redirect()-back();

6.控制器Controller之Middleware

7.表单验证及数据保持(一次性session)

  1)控制器验证  2)Validator验证

//控制器验证
     $rules = [
'username' => 'required|max:10',
'password' => 'required|max:10',
'groupid' => 'required',
'grouptitle' => 'required',
'groupname' => 'required',
'pid' => 'required',
'groupqq' => 'required', ];
$message = [
'username.required'=>'账号不能为空!',
'username.max'=>'账号不能大于10位!',
'password.required'=>'密码不能为空!',
// 'code.required'=>'验证码不能为空!',
// 'code.between'=>'验证码必须为4位!',
'groupid.required'=>'groupid不能为空!',
'grouptitle.required'=>'grouptitle不能为空!',
'groupname.required'=>'groupname不能为空!',
'pid.required'=>'pid不能为空!',
'groupqq.required'=>'groupqq不能为空!',
]; $this->validate($request,$this->rules,$this->message);//会自动跳转 用一次性session
        //Validator类验证  use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->input(),$rules,$message);
if($validator->fails())
{//验证失败,重定向,或返回
return redirect()->back()->withErrors($validator);
}

传参数不同的另一种形式(多传了一组参数)

//控制器验证
$this->validate($request,
['Student.name'=>'required|max:10','Student.age'=>'required|integer'],
['required'=>':attribute 为必填项','integer'=>':attribute 是整数','max'=>':attribute 最大值'],
['Student.name'=>'姓名','Student.age'=>'性别']
);
        //Validator类验证  use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->input(),
['Student.name'=>'required|max:10','Student.age'=>'required|integer'],
['required'=>':attribute 为必填项','integer'=>':attribute 是整数','max'=>':attribute 最大值'],
['Student.name'=>'姓名','Student.age'=>'性别']);
if($validator->fails())
{//验证失败,重定向,或返回
return redirect()->back()->withErrors($validator);
}

错误信息模板显示

@if (count($errors))
{{$errors->first()}}
@foreach($errors->all() as $error)
{{$error}}
@endforeach
@endif

数据保持 采用一次性session

8.模板继承

模板的url路径 :{{ asset('css/app.css') }},{{ url('/') }},{{ route('login') }}

表单里面的数据 {{ csrf_field() }},

包含视图 @include('view.name')

<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
参考:https://docs.golaravel.com/docs/5.0/templates/#other-blade-control-structures
 
循环 判断等
 
其他请百度
 
 
 
 
 也可以参照 : http://lampol-blog.com/detail/aid/OWIwYS8yWXdWVk5JYUVLam9YWUV3U1haSnRCQkdVK2ZDcjhzckk2d2h3
 
 
 
 

laravel中及其常用的一些函数方法(自己看)和技巧(不断添加中)的更多相关文章

  1. tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)

    1.目录结构 2.路由 3..控制器 4.模型写法 5.视图标签 6.数据库操作 7.表单验证 8.分页 --------------------------- 1.目录结构 project 应用部署 ...

  2. 【重温基础】JS中的常用高阶函数介绍

    Ps. 晚上加班到快十点,回来赶紧整理整理这篇文章,今天老大给我推荐了一篇文章,我从写技术博客中收获到了什么?- J_Knight_,感受也是很多,自己也需要慢慢养成记录博客的习惯,即使起步艰难,难以 ...

  3. iOS开发小技巧 - UILabel添加中划线

    iOS开发小技巧 遇到的问题: 给Label添加中划线,然后并没有效果 NSString *str = [NSString stringWithFormat:@"合计金额 ¥%.2f&quo ...

  4. 通过写一个Demo展示C#中多种常用的集合排序方法

    不多说,程序很简单,就是将集合中的数据进行排序,但使用到的知识点还是比较多的,大牛勿喷,谨献给初学者!直接上程序吧! namespace Demo { /// <summary> /// ...

  5. JAVA中正则表达式常用的四个方法

    JAVA中正则表达式处理字符串的四个常用方法:匹配.分割.替换.截取.其跟字符串的常用函数相似,但是使用正则表达式会更简单.更加简洁.下面是具体的例子: public class TestRegex ...

  6. 【Python】从简单案列中揭示常用内置函数以及数据类型

    前面提到了BIF(内置函数)这个概念,什么是内置函数,就是python已经定义好的函数,不需要人为再自己定义,直接拿来就可以用的函数,那么都有哪些BIF呢? 可以在交互式界面(IDLE)输入这段代码, ...

  7. 工作中最常用的Excel函数公式大全

    电脑那些事儿2016-05-18 22:23:02微软 公式 工作阅读(22574)评论(1) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场.举报 Wo ...

  8. 洗礼灵魂,修炼python(4)--从简单案列中揭示常用内置函数以及数据类型

    上一篇说到print语句,print是可以打印任何类型到屏幕上,都有哪些类型呢? 整形(int) 长整型(long) 浮点型(float) 字符型(str) 布尔型(bool) 最常见的就这几种. 在 ...

  9. Unity插件扩展中组件常用的几个方法

    最近为美术编写一个Unity编辑器的扩展,主要为了减轻美术在修改预制对象时的机械化操作的繁琐和出错.具体实现的几个功能: 1.删除指定组件: 2.复制.粘贴指定的组件: 3.重新关联新的属性: 4.重 ...

随机推荐

  1. hdu3944

    hdu3944题目中给出的杨辉三角形的形状带有误导目的,应该转化成对称的形状再去思考这个问题分两种情况第一个是在左区从目标位置向左上方走一直走到边界,然后再向右上方一直走到起点n-k个1加上C(n-k ...

  2. Python常用模块--re

    Python内部的re--传闻中的正则模块,是无数初学者心中的噩梦,几乎到了谈正则色变的地步. 1.正则是干什么的 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常 ...

  3. BZOJ.3227.[SDOI2008]红黑树tree(树形DP 思路)

    BZOJ orz MilkyWay天天做sxt! 首先可以树形DP:\(f[i][j][0/1]\)表示\(i\)个点的子树中,黑高度为\(j\),根节点为红/黑节点的最小红节点数(最大同理). 转移 ...

  4. python基础一 ------linux某目录下批量的为特定文件加入可执行权限

    需求: 一个文件夹中有个文件,要求对特定的文件加入可执行权限 某文件系统目录下有一系列文件:    quicksort    graph.py    heap.java    install.sh   ...

  5. GPIO知识点整理

    //GPIO的作业,抄两次,注意:本文件是知识点的整理不是可以直接运行的程序. //STM32必须包含的头文件 #include "stm32f10x.h" //GPIO相关头文件 ...

  6. Module not found: Error: Can't resolve 'XXX' in 'XXXX'

    故障 控制台运行webpack/npm时出现 Module not found: Error: Can't resolve 'XXX' in 'XXXX' 解决方案 npm i XXX --save ...

  7. Qt控制台例子

    功能:实现通过命令行方式保存文件 #include <QCoreApplication> #include <iostream> #include <QString> ...

  8. JS Function类型

    每个函数都是Function类型的实例,由于函数是对象,函数名实际上是一个指向函数对象的指针,不会与某个函数绑定. 1.函数的声明: (1)函数声明语法: function sum (num1,num ...

  9. Java 构造器 遇到多个构造器时要考虑用构建器

    静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数. 当一个类中有若干个必选属性和多个可选属性时,采用重叠构造器模式.JavaBeans模式或者Builder模式,但各有优劣. 当 ...

  10. 用单进程、多线程并发、多线程分别实现爬一个或多个网站的所有链接,用浏览器打开所有链接并保存截图 python

    #coding=utf-8import requestsimport re,os,time,ConfigParserfrom selenium import webdriverfrom multipr ...