laravel中Request、Session、Response、Middelware
Request請求
使用的是symfony/http-foundation組件
存放$_get,$_post,$_cookie,$_files,$_server等數據
Public function request(Request $request)
{
?????????? 取單一get值,可加默認值
?????????? Ehco $request->input(‘name’,‘未知’);
?
?????????? 判斷是否有這個數據
?????????? if($request->has(‘name’’)){
?????????? ???????? ehco $request->input(‘name’, ‘未知’);
?????????? } else {
?????????? ???????? echo ‘null’;
?????????? }
?????????? 取所有參數
?????????? $res = $request->all();
?????????? dd($res)
?
?????????? 判斷請求類型
?????????? 獲取類型
?????????? $res = $request->method();
?????????? 判斷類型
?????????? if($request->isMethod(‘POST’))
?????????? else
?
?????????? 判斷是否為ajax方法
?????????? res = $request->ajax();
?????????? var_dump($res);
?
?????????? 請求的路徑是否滿足特定的格式
?????????? 判斷是否在哪個controllers下某個方法
?????????? $res =$request->is(‘student/*’)
?
?????????? 當前URL
?????????? echo $request->url()
}
?
?
?
?
?
?
Session
Public function request(Request $request)
{
?????????????????? HTTP request 類的session()方法
???????? $request->session()->put(‘key1’, ‘value’);
?????????? $request->session()->get(‘key1’);
?
?
?????????????????? Session()輔助函數
?????????? Session()->put(‘key1’,‘value’);
?????????? Session()->get(‘key1’);
?
?
???????? ???????? Sessionfa?ade
???????? Session::put(‘key1’, ‘value’);
?????????? Session::get(‘key1’,‘default’);
?
?????????? 以數組方式存值
?????????? Session::put([‘key’=>’val’]);
?
?????????? 把數據放到session數組中
?????????? Session::push(‘value1’,‘value’);
?
?????????? 取完數據并刪除
?????????? Session::pull(‘value’1);
?
?????????? 取出所有數據
?????????? Session::all();
?
?????????? 判斷session中KEY是否存在
?????????? Session::has(‘key’);
?
?????????? 刪除session中KEY
?????????? Session::forget(‘key’);
?
?????????? 刪除session所有KEY
?????????? Session::flush(‘key’);
?
?????????? 臨時數據(第一次訪問有,第二次即空)
?????????? Session::flash(‘key’);
???????? }
?
?
Response響應
常見類型
字符串
?
視圖
?
Json
return Response()->json($data);
?
重定向
路由名字
return Redirect(‘session2’)->with(‘message’,‘這是傳輸的參數’); // session2路由名字
?
action()
return redirect()->action(‘StudentController@update’)->with(‘message’,‘這是傳輸的參數’);
?
路由別名route()
return redirect()->route(‘session’)->with(‘message’,‘這是傳輸的參數’);
?
返回上一級
return redirect()->back();
?
Middelware中間件
1.新建立
<?php
?
namespace App\Http\Middleware;
?
?
class Activity
{
???????? //前置中間件
???public function handle($request, \Closure $next)
??? {
???????if (time() < strtotime('2016-06-05')) {
???????????//跳轉到其他頁
???????????return redirect('active');
???????}
???????return $next($request);
}
?
???????? //后置中間件
???public function handle($request, \Closure $next)
{???????
???????? $response = $next($request);
???????? echo ‘我是后置操作,請往下寫邏輯哦’
??? }
?
}
?
2.Kernel.php下
???/**
????* The application's route middleware.
????*
????* These middleware may be assigned to groups or used individually.
????*
????* @var array
????*/
???protected $routeMiddleware = [
???????'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
???????'auth.basic' =>\Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
???????'bindings' =>\Illuminate\Routing\Middleware\SubstituteBindings::class,
???????'can' => \Illuminate\Auth\Middleware\Authorize::class,
???????'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
???????'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
???????'activity' =>\App\Http\Middleware\Activity::class,
];
?
3.路由使用
Route::group(['middleware' =>['activity']], function () {
???????? 以下為需要驗證的方法
???Route::get('student/index', ['uses' => 'StudentController@index']);
???Route::any('student/create', ['uses' => 'StudentController@create']);
});
總結
以上是生活随笔為你收集整理的laravel中Request、Session、Response、Middelware的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laravel blade模板
- 下一篇: laravel artisan