laravel 包含各種全局輔助函數(shù)。 laravel 中包含大量輔助函數(shù),您可以使用它們來簡化開發(fā)工作流程。 在這里,我將編寫10個最好的 laravel 幫助函數(shù),用于使我的開發(fā)更容易。 您必須考慮在必要時使用它們。
您還可以查看所有的官方文檔 laravel helper functions.
array_dot()
array_dot() array_dot() 輔助函數(shù)允許你將多維數(shù)組轉換為使用點符號的一維數(shù)組。
$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() 函數(shù)使用點符號從多維數(shù)組中檢索值。
$array = [ 'user' => ['username' => 'something'], 'app' => ['creator' => ['name' => 'someone'], 'created' => 'today'] ]; $name = array_get($array, 'app.creator.name'); // someone
如果key不存在,array_get() 函數(shù)還接受可選的第三個參數(shù)作為默認值。
$name = array_get($array, 'app.created.name', 'anonymous'); // anonymous
public_path()
public_path() 返回 Laravel 應用程序中公共目錄的完全限定的絕對路徑。 你還可以將路徑傳遞到公共目錄中的文件或目錄以獲取該資源的絕對路徑。 它將簡單地將public_path() 添加到你的參數(shù)中。
$public_path = public_path(); $path = public_path('js/app.js');
Str::orderedUuid()
Str::orderedUuid() 函數(shù)首先生成一個時間戳uuid。 這個uuid可以存儲在索引數(shù)據(jù)庫列中。 這些uuid是基于時間戳創(chuàng)建的,因此它們會保留你的內(nèi)容索引。 在Laravel 5.6中使用它時,會引發(fā) RamseyUuidExceptionUnsatisfiedDependencyException。 要解決此問題,只需運行以下命令即可使用 moontoast/math 包::
composer require "moontoast/math"
use IlluminateSupportStr; return (string) Str::orderByUuid() // A timestamp first uuid
str_plural()
str_plural 函數(shù)將字符串轉換為復數(shù)形式。該功能只支持英文。
echo str_plural('bank'); // banks echo str_plural('developer'); // developers
route()
route() 函數(shù)為指定的路由生成路由URL。
$url = route('login');
如果路由接受參數(shù),你可以簡單地將它們作為第二個參數(shù)傳遞給一個數(shù)組。
$url = route('products', ['id' => 1]);
如果你想產(chǎn)生一個相對的URL而不是一個絕對的URL,你可以傳遞false作為第三個參數(shù)。
$url = route('products', ['id' => 1], false);
tap()
tap() 函數(shù)接受兩個參數(shù):一個值和一個閉包。該值將被傳遞給閉包,然后該值將被返回。閉包返回值無關緊要。
$user = AppUser::find(1); return tap($user, function($user) { $user->update([ 'name' => 'Random' ]); });
它不會返回布爾值,而是返回 User Model 。
如果你沒有傳遞閉包,你也可以使用 User Model 的任何方法。 無論實際返回的方法如何,返回值都將始終為值。 在下面的例子中,它將返回 User Model 而不是布爾值。 update方法返回布爾值,但由于用了 tap ,所以它將返回 User Model。
$user = AppUser::find(1); return tap($user)->update([ 'name' => 'SomeName' ]);
dump()
dump() 函數(shù)會dump給定的變量,同時也支持同時傳入多個變量。這對調試非常有用。
dump($var1); dump($var1, $var2, $var3);
str_slug()
str_slug() 函數(shù)將給定的字符串生成一個 URL 友好的 slug。 你可以使用此功能為帖子或產(chǎn)品標題創(chuàng)建一個 slug。
$slug = str_slug('Helpers in Laravel', '-'); // helpers-in-laravel
optional()
optional() 函數(shù)接受一個參數(shù),你可以調用參數(shù)的方法或訪問屬性。 如果傳遞的對象為null,則方法和屬性將返回null,而不是導致錯誤或拋出異常。
$user = User::find(1); return optional($user)->name;
更多Laravel相關技術文章,請訪問laravel helper functions欄目進行學習!