十個推薦使用的 Laravel 的輔助函數

壹. array_dot()

array_dot () 輔助函數容許你將多維數組轉換爲使用點符號的一維數組。laravel

1 $array = [
2     'user' => ['username' => 'something'],
3     'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
4 ];
5 
6 $dot_array = array_dot($array);
7 
8 // [user.username] => something, [app.creator.name] => someone, [app.created] => today

貳. array_get()

array_get() 函數使用點符號從多維數組中檢索值。程序員

 1 $array = [
 2     'user' => ['username' => '你是猴嗎'],
 3     'app' => ['creator' => ['name' => '我是孫悟空'], 'created' => '我不是程序員']
 4 ];
 5 
 6 $name = array_get($array, 'app.creator.name');
 7 
 8 //輸出: 我是孫悟空
 9 
10 //若是 key 不存在,array_get() 函數還接受可選的第三個參數做爲默認值。
11 //app.created.name不存在
12 $name = array_get($array, 'app.created.name', '我是一隻猴');
13 
14 //輸出: 我是一隻猴

叄. public_path()

public_path() 返回 Laravel 應用程序中公共目錄的徹底限定的絕對路徑。 你還能夠將路徑傳遞到公共目錄中的文件或目錄以獲取該資源的絕對路徑。 它將簡單地將 public_path() 添加到你的參數中。數據庫

1 $public_path = public_path();
2 
3 $path = public_path('js/app.js');

肆. Str::orderedUuid()

Str::orderedUuid() 函數首先生成一個時間戳 uuid。 這個 uuid 能夠存儲在索引數據庫列中。 這些 uuid 是基於時間戳建立的,所以它們會保留你的內容索引數組

 1 //在 Laravel 5.6 中使用它時,會引起 Ramsey\Uuid\Exception\UnsatisfiedDependencyException。 
 2 //要解決此問題,只需運行如下命令便可使用 moontoast/math 包::
 3 
 4 composer require "moontoast/math"
 5 
 6 use Illuminate\Support\Str;
 7 
 8 return (string) Str::orderByUuid()
 9 
10 // A timestamp first uuid

伍. str_plural()

str_plural 函數將字符串轉換爲複數形式。該功能只支持英文。閉包

1 // 單詞後面都加了s
2 echo str_plural('bank');
3 
4 // banks
5 
6 echo str_plural('developer');
7 
8 // developers

陸. route()

route() 函數爲指定的路由生成路由 URL。app

1 $url = route('login');
2 
3 //若是路由接受參數,你能夠簡單地將它們做爲第二個參數傳遞給一個數組。
4 $url = route('products', ['id' => 1]);
5 
6 //若是你想產生一個相對的 URL 而不是一個絕對的 URL,你能夠傳遞 false 做爲第三個參數。
7 $url = route('products', ['id' => 1], false);

柒. tap()

tap() 函數接受兩個參數:一個值和一個閉包。該值將被傳遞給閉包,而後該值將被返回。閉包返回值可有可無。composer

 1 $user = App\User::find(1);
 2 
 3 return tap($user, function($user) {
 4     $user->update([
 5         'name' => 'Random'
 6     ]);
 7 });
 8 //它不會返回布爾值,而是返回 User Model 。
 9 
10 //若是你沒有傳遞閉包,你也可使用 User Model 的任何方法。 不管實際返回的方法如何,返回值都將始終爲值。
11 //在下面的例子中,它將返回 User Model 而不是布爾值。 update 方法返回布爾值,但因爲用了 tap ,因此它將返回 User Model。
12 $user = App\User::find(1);
13 
14 return tap($user)->update([
15     'name' => 'SomeName'
16 ]);

捌. dump()

dump() 函數會 dump 給定的變量,同時也支持同時傳入多個變量。這對調試很是有用。dom

1 dump($var1);
2 dump($var1, $var2, $var3);

玖. str_slug()

str_slug() 函數將給定的字符串生成一個 URL 友好的 slug。 你可使用此功能爲帖子或產品標題建立一個 slug。函數

1 $slug = str_slug('Helpers in Laravel', '-');
2 
3 // helpers-in-laravel

拾. optional()

optional() 函數接受一個參數,你能夠調用參數的方法或訪問屬性。 若是傳遞的對象爲 null,則方法和屬性將返回 null,而不是致使錯誤或拋出異常。ui

1 $user = User::find(1);
2 
3 return optional($user)->name;
相關文章
相關標籤/搜索