文章轉自:learnku.com/laravel/t/2…
laravel
Laravel 包含各類全局輔助函數。 laravel 中包含大量輔助函數,您可使用它們來簡化開發工做流程。 在這裏,我將編寫10個最好的 laravel 幫助函數,用於使個人開發更容易。 您必須考慮在必要時使用它們。數據庫
您還能夠查看全部的官方文檔 laravel helper functions.數組
array_dot()
array_dot() 輔助函數容許你將多維數組轉換爲使用點符號的一維數組。bash
$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 = [
'user' => ['username' => 'something'],
'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
];
$name = array_get($array, 'app.creator.name');
// someone
複製代碼
若是key不存在,array_get()
函數還接受可選的第三個參數做爲默認值。app
$name = array_get($array, 'app.created.name', 'anonymous');
// anonymous
複製代碼
public_path()
返回 Laravel 應用程序中公共目錄的徹底限定的絕對路徑。 你還能夠將路徑傳遞到公共目錄中的文件或目錄以獲取該資源的絕對路徑。 它將簡單地將public_path()
添加到你的參數中。composer
$public_path = public_path();
$path = public_path('js/app.js');
複製代碼
Str::orderedUuid()
函數首先生成一個時間戳uuid。 這個uuid能夠存儲在索引數據庫列中。 這些uuid是基於時間戳建立的,所以它們會保留你的內容索引。 在Laravel 5.6中使用它時,會引起 Ramsey\Uuid\Exception\UnsatisfiedDependencyException
。 要解決此問題,只需運行如下命令便可使用 moontoast/math
包::dom
composer require "moontoast/math"
複製代碼
use Illuminate\Support\Str;
return (string) Str::orderByUuid()
// A timestamp first uuid
複製代碼
str_plural
函數將字符串轉換爲複數形式。該功能只支持英文。函數
echo str_plural('bank');
// banks
echo str_plural('developer');
// developers
複製代碼
route()
函數爲指定的路由生成路由URL。ui
$url = route('login');
複製代碼
若是路由接受參數,你能夠簡單地將它們做爲第二個參數傳遞給一個數組。
$url = route('products', ['id' => 1]);
複製代碼
若是你想產生一個相對的URL而不是一個絕對的URL,你能夠傳遞false
做爲第三個參數。
$url = route('products', ['id' => 1], false);
複製代碼
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($var1);
dump($var1, $var2, $var3);
複製代碼
str_slug()
函數將給定的字符串生成一個 URL 友好的 slug。 你可使用此功能爲帖子或產品標題建立一個 slug。
$slug = str_slug('Helpers in Laravel', '-');
// helpers-in-laravel
複製代碼
optional()
函數接受一個參數,你能夠調用參數的方法或訪問屬性。 若是傳遞的對象爲null,則方法和屬性將返回null,而不是致使錯誤或拋出異常。
$user = User::find(1);
return optional($user)->name;
複製代碼