博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
laravel中及其常用的一些函数方法(自己看)和技巧(不断添加中)
阅读量:4313 次
发布时间:2019-06-06

本文共 6557 字,大约阅读时间需要 21 分钟。

手册: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  )

使用案例:

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

1.中间件的定义

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

php artisan make:middleware OldMiddleware

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

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
 
 
 
 

 

转载于:https://www.cnblogs.com/fps2tao/p/8726890.html

你可能感兴趣的文章
[Codeforces 925C]Big Secret
查看>>
处理MVC中默认的Json方法返回时间的问题
查看>>
分布式技术追踪 2018年第十期
查看>>
IDEA中Git的使用
查看>>
War3模型导出
查看>>
java: 列出本机java环境
查看>>
Python内置函数(19)——eval
查看>>
怎样录制屏幕并将结果保存为Gif
查看>>
别名设置 alias
查看>>
练习3.34
查看>>
oracle加减操作
查看>>
dp乱写3:环形区间dp(数字游戏)
查看>>
【Beta阶段】启程会议——第零次Scrum Meeting!
查看>>
Apple Tree
查看>>
JS 中对变量类型的五种判断方法
查看>>
学习进度十五
查看>>
解决Android Studio启动项目后一直处于refreshing 'View' gradle project,快速解决亲测有效...
查看>>
4.12 | 学习笔记
查看>>
python开发【第一篇】:基础知识
查看>>
javascript的window.onload()方法和jQuery的$(document).ready()的对比
查看>>