Laravel包含各類全局輔助函數(helper), 你可使用它們使開發工做流程更加輕鬆。 在這裏,我將會列一下10個最好的 Laravel helpers,它們使個人開發更容易。 必要時你們也考慮使用它們。php
更多的輔助函數,能夠看 Laravel官方文檔laravel
array_dot()
輔助函數容許你將多維數組轉換爲使用點符號的一維數組。shell
$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()函數還接受可選的第三個參數做爲默認值。數組
$name = array_get($array, 'app.created.name', 'anonymous'); // anonymous
public_path()
返回 Laravel 應用程序中公共目錄的徹底限定的絕對路徑。 你還能夠將路徑傳遞到公共目錄中的文件或目錄以獲取該資源的絕對路徑。 它將簡單地將public_path()
添加到你的參數中。閉包
$public_path = public_path(); $path = public_path('js/app.js');
Str::orderedUuid()
函數首先生成一個時間戳uuid。 這個uuid能夠存儲在索引數據庫列中。 這些uuid是基於時間戳建立的,所以它們會保留你的內容索引。 在Laravel 5.6中使用它時,會引起 Ramsey\Uuid\Exception\UnsatisfiedDependencyException
。 要解決此問題,只需運行如下命令便可使用 moontoast/math
包:app
composer require "moontoast/math"
use Illuminate\Support\Str; return (string) Str::orderByUuid() // A timestamp first uuid
str_plural()
函數將字符串轉換爲複數形式。該功能只支持英文。composer
echo str_plural('bank'); // banks echo str_plural('developer'); // developers
route()
函數爲指定的路由生成路由URL。dom
$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
而不是布爾值。 更新方法返回布爾值,但因爲用了 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 = str_slug('Helpers in Laravel', '-'); // helpers-in-laravel
optional()
函數接受一個參數,你能夠調用它的方法或訪問屬性。若是傳遞的對象爲null,則方法和屬性將返回null而不是致使錯誤或拋出異常。
$user = User::find(1); return optional($user)->name;
關於更多PHP的使用,請前往 PHPCasts社區