日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/6/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel中及其常用的一些函数方法(自己看)和技巧(不断添加中) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

<?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)

?

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');});

?

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();//暫存數據,一次性sessionSession::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','我是快閃數據');//路由別名 asredirect()-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 循環 判斷等 其他請百度

?

總結

以上是生活随笔為你收集整理的laravel中及其常用的一些函数方法(自己看)和技巧(不断添加中)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。