Laravel 實用的輔助函數小技巧--helper


Laravel 實用的輔助函數小技巧--helper

Laravel 的一些輔助函數其實有很多方法是很實用的,很多人也用了一部分,而往往很多人確把其他的小方法忽視了,下面,丟丟哥給大家一一列舉以下。

一、表單類

1.csrf token 表單

{{ csrf_token() }} 

這樣就可以直接獲取 Laravel 自身維護的 csrf_token,比如通常是這樣用的

<input name="_token" value="{{ csrf_token() }}" type="hidden" /> 

更簡便的方法

{!! csrf_field() !!}

這樣就會直接在 html 輸出類似下面的內容了

<input name="_token" value="5A0CQ8OHQylQFdM1UQ8pjJyMuN8YP5erC6VaiS89" type="hidden" /> 

2.生成 method 表單

在使用 resource 路由的時候,有一些 method 瀏覽器原生不能支持的,比如 DELETE,PATCH PUT 等,這時候就可以使用一下代碼來生成 method 表單,模擬這些請求:

 {{ method_field('DELETE') }} 

生成的 html :

<input type="hidden" name="_method" value="DELETE"> 

二、數組類型

如果指定的鍵不存在於該數組,array_add 函數便會將指定的鍵值對加到數組中:

$array = array_add(['name' => 'Desk'], 'price', 100); // ['name' => 'Desk', 'price' => 100] 

array_collapse 函數將數組的每一個數組折成單個數組:

$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); // [1, 2, 3, 4, 5, 6, 7, 8, 9] 

array_divide 函數返回兩個數組,一個包含原本數組的鍵,另一個包含原本數組的值:

list($keys, $values) = array_divide(['name' => 'Desk']); // $keys: ['name'] // $values: ['Desk'] 

head函數返回指定數組的第一個元素:

$array = [100, 200, 300]; $first = head($array); // 100 

last 函數返回指定數組的最后一個元素:

$array = [100, 200, 300]; $last = last($array); // 300 

字符串類型

e函數對指定字符串運行 htmlentities(防注入處理):

echo e('<html>foo</html>'); // &lt;html&gt;foo&lt;/html&gt; 

str_limit 函數限制字符串的字符數量。該函數接受一個字符串作為第一個參數,以及最大字符數量作為第二參數(支持中文截取 不會出現亂碼的情況):

$value = str_limit('The PHP framework for web artisans.', 7);

// The PHP...

str_contains 函數判斷指定字符串是否包含指定內容:(可以做一個異步的字符串過濾器):

$value = str_contains('This is my name', 'my'); // true 

str_random 函數生成指定長度的隨機字符串(實用場景也挺多):

$string = str_random(64); 

trans函數根據你的 本地化文件 翻譯指定的語句(多語言和表單驗證):

echo trans('validation.required'): 

三、其他

back() 函數生成一個重定向響應讓用戶回到之前的位置:

return back()->withErrors('this value is request'); 

config 獲取設置選項的設置值。設置值可通過「點」式語法讀取,其中包含要訪問的文件名以及選項名稱。可傳遞一默認值在找不到指定的設置選項時返回該數值:

$value = config('app.timezone'); $value = config('app.timezone', $default); 

config 輔助函數也可以在運行期間,根據指定的鍵值對指定設置值:

config(['app.debug' => true]); 

dd 函數輸出指定變量並結束腳本運行(這樣相信用的多得一筆了):

dd($data); 

env 函數獲取環境變量值或返回默認值:

$env = env('APP_ENV'); // 當變量不存在時返回一個默認值... $env = env('APP_ENV', 'production'); 

redirect 函數返回重定向器實例以進行 重定向:

return redirect('/login'); 

response 函數創建一個 響應 實例或獲取一個響應工廠(response factory)實例:

return response('Hello World', 200, $headers); return response()->json(['foo' => 'bar'], 200, $headers); 

session 函數可用於獲取或設置單個 session 內容:

$value = session('key'); 

你可以通過傳遞鍵值對給該函數進行內容設置:

session(['chairs' => 7, 'instruments' => 3]); 

該函數在沒有傳遞參數時,將返回 session 實例:

$value = session()->get('key'); session()->put('key', $value); 

view 函數獲取 視圖 實例:

return view('auth.login'); 

對象轉數組

collect($obj)->toArray(); 

轉換成json字串

// $data 數組和對象都可以 collect($data)->toJson(); 

`

回調過濾集合,只有通過給定測試的數據項才會保留下來

$arr = collect([1,2,3,4])->filter(function ($str){ return $str > 2; }); dd($arr); // [3,4] 

將集合數據項的順序顛倒

$collection = collect([1, 2, 3, 4, 5]); $reversed = $collection->reverse(); $reversed->all(); // [5, 4, 3, 2, 1] 

個數

$data = collect([1,2,3,4,5])->count(); // 5 

迭代集合並對集合中每個數據項調用給定回調。集合中的數據項將會被替代成從回調中返回的值:

$collection = collect([1, 2, 3, 4, 5]); $collection->transform(function ($item, $key) { return $item * 2; }); $collection->all(); // [2, 4, 6, 8, 10] 

集合的值相應的索引處合並給定數組的值

$collection = collect(['Tom', 'Lark']); $zipped = $collection->zip(['170cm', '181cm']); $zipped->all(); // [['Tom', '170cm'], ['Lark', '181cm']]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM