Laravel学习笔记Day3-2

Controller-request

获取请求中的值
请求
localhost/laravel/public/request1?name=sean

取值

public function request1(Request $request)

{
$request->input('name','未知');//获得name字段,如果没有默认值为'未知',选填



//判断

if($request->has('name'))



//所有的参数

$res=$request->all();

}

判断请求类型
$request->method();//返回请求类型

$request->isMethod('POST');//判断是否是某种请求

$request->is('student/*');//判断路由的路径是否符合定义的规则

$request->url();//获得request的当前url


Controller-session

session配置文件config/session.php

路由时需要添加sessionstart的中间件

Route::group(['middleware'=>['web']],function(){

    Route::any('session1',['uses'=>'StudentController@session1']);

    Route::any('session2',['uses'=>'StudentController@session2']);

});

http request类的session()方法

public function session1(Request $request){

    $request->session()->put('key1','value1');//session写入内容

}

public function session2(Request $request){

    $request->session()->get('key1');//取出session中的内容

}


session()辅助函数

public function session1(Request $request){

    session()->put('key2','value2');//session写入内容

}

public function session2(Request $request){

    session()->get('key2');//取出session中的内容

}

session 类的方法

public function session1(Request $request){

    Session::put('key3','value3');//session写入内容

    Session::put(['key4']=>'value4']);//以数组的形式

    Session::push('student','a');
    Session::push('student','b');
    Session::push('student','c');

    Session::flash('falsh-key','flash-val');//只第一次访问存在之后不存在
}

public function session2(Request $request){

    Session::get('key3','default');//取出session中的内容,如果没有使用default值

    Session::get('student','default');//返回一个数组

    Session::pull('student',default;)//取出数据并删除
    Session::all();//返回所有的session数据
    if(Session::has('key1'))//判断session中某个key是否存在

    Session::forget('key1')//删除session中key1
    Session::flush()//删除session所有数据
}

Controller-Response

常见相应类型:字符串、视图、json、重定向

json

$data=[

    'errcode'=>0,

    'errMsg'=>'success'

];

return response()->json($data);//返回json字符串

重定向

return redirect('路由')

return redirect('路由')->with('message','数据');//带数据的,原理是session的falsh(),使用Session::get('message','default');获取

return redirect()->action('控制器@方法名')->with('message','数据');

return redirect()->route('路由别名')->with('message','数据');



Controller-Middleware

过滤进入应用程序的http请求

新建中间件


namespace App\Http\middleawre;

use Closure

class Activity{

public function handle($request,Closure $next){//必须这么写

    if(time()<strtotime('2018-7-5')){

        return redirect('activity0');//如果时间在此之前则转到控制器里的activity0

    }

    return $next($request);

}}

注册中间件



添加

'activity'=>\App\Http\Middleware\Activity::class,

使用中间件

路由中添加

遇到activity1和activity2路由时先进到中间件判断一下,

Route::group(['middleware'=>['activity']],function(){

    Route::any('activity1',['uses'=>'StudentController@activity1']);

     Route::any('activity2',['uses'=>'StudentController@activity2']);

});

中间件的前置和后置操作

逻辑在请求前执行:前置操作

public function handle($request,Closure $next){//必须这么写

    if(time()<strtotime('2018-7-5')){

        return redirect('activity0');//如果时间在此之前则转到控制器里的activity0

    }

    return $next($request);//请求

}}

逻辑在请求后执行:后置操作

public function handle($request,Closure $next){//必须这么写


    $response= $next($request);//请求
    
    echo'我是后置'
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值