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