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

weixin_33912246發表於2017-04-13

本文轉載自丟哥部落格,原文地址:https://www.blog8090.com/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>');

// <html>foo</html>

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

相關文章