Laravel 包含各種全域性輔助函式。 laravel 中包含大量輔助函式,您可以使用它們來簡化開發工作流程。 在這裡,我將編寫10個最好的 laravel 幫助函式,用於使我的開發更容易。 您必須考慮在必要時使用它們。
您還可以檢視所有的官方文件 laravel helper functions.
array_dot()
array_dot()
array_dot() 輔助函式允許你將多維陣列轉換為使用點符號的一維陣列。
$array = [
'user' => ['username' => 'something'],
'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
];
$dot_array = array_dot($array);
// [user.username] => something, [app.creator.name] => someone, [app.created] => today
複製程式碼
array_get()
array_get()
函式使用點符號從多維陣列中檢索值。
$array = [
'user' => ['username' => 'something'],
'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
];
$name = array_get($array, 'app.creator.name');
// someone
複製程式碼
如果key不存在,array_get()
函式還接受可選的第三個引數作為預設值。
$name = array_get($array, 'app.created.name', 'anonymous');
// anonymous
複製程式碼
public_path()
public_path()
返回 Laravel 應用程式中公共目錄的完全限定的絕對路徑。 你還可以將路徑傳遞到公共目錄中的檔案或目錄以獲取該資源的絕對路徑。 它將簡單地將public_path()
新增到你的引數中。
$public_path = public_path();
$path = public_path('js/app.js');
複製程式碼
Str::orderedUuid()
Str::orderedUuid()
函式首先生成一個時間戳uuid。 這個uuid可以儲存在索引資料庫列中。 這些uuid是基於時間戳建立的,因此它們會保留你的內容索引。 在Laravel 5.6中使用它時,會引發 Ramsey\Uuid\Exception\UnsatisfiedDependencyException
。 要解決此問題,只需執行以下命令即可使用 moontoast/math
包::
composer require "moontoast/math"
複製程式碼
use Illuminate\Support\Str;
return (string) Str::orderByUuid()
// A timestamp first uuid
複製程式碼
str_plural()
str_plural
函式將字串轉換為複數形式。該功能只支援英文。
echo str_plural('bank');
// banks
echo str_plural('developer');
// developers
複製程式碼
route()
route()
函式為指定的路由生成路由URL。
$url = route('login');
複製程式碼
如果路由接受引數,你可以簡單地將它們作為第二個引數傳遞給一個陣列。
$url = route('products', ['id' => 1]);
複製程式碼
如果你想產生一個相對的URL而不是一個絕對的URL,你可以傳遞false
作為第三個引數。
$url = route('products', ['id' => 1], false);
複製程式碼
tap()
tap()
函式接受兩個引數:一個值和一個閉包。該值將被傳遞給閉包,然後該值將被返回。閉包返回值無關緊要。
$user = App\User::find(1);
return tap($user, function($user) {
$user->update([
'name' => 'Random'
]);
});
複製程式碼
它不會返回布林值,而是返回 User Model
。
如果你沒有傳遞閉包,你也可以使用 User Model
的任何方法。 無論實際返回的方法如何,返回值都將始終為值。 在下面的例子中,它將返回 User Model
而不是布林值。 update
方法返回布林值,但由於用了 tap
,所以它將返回 User Model
。
$user = App\User::find(1);
return tap($user)->update([
'name' => 'SomeName'
]);
複製程式碼
dump()
dump()
函式會dump給定的變數,同時也支援同時傳入多個變數。這對除錯非常有用。
dump($var1);
dump($var1, $var2, $var3);
複製程式碼
str_slug()
str_slug()
函式將給定的字串生成一個 URL 友好的 slug。 你可以使用此功能為帖子或產品標題建立一個 slug。
$slug = str_slug('Helpers in Laravel', '-');
// helpers-in-laravel
複製程式碼
optional()
optional()
函式接受一個引數,你可以呼叫引數的方法或訪問屬性。 如果傳遞的物件為null,則方法和屬性將返回null,而不是導致錯誤或丟擲異常。
$user = User::find(1);
return optional($user)->name;
複製程式碼