10個非常好用的 Laravel 輔助函數(shù)

laravel-tap.png

Laravel包含各種全局輔助函數(shù)(helper), 你可以使用它們使開發(fā)工作流程更加輕松才写。 在這里奕筐,我將會列一下10個最好的 Laravel helpers,它們使我的開發(fā)更容易萝快。 必要時大家也考慮使用它們贡翘。

更多的輔助函數(shù),可以看 Laravel官方文檔

array_dot()

array_dot() 輔助函數(shù)允許你將多維數(shù)組轉(zhuǎn)換為使用點符號的一維數(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 應(yīng)用程序中公共目錄的完全限定的絕對路徑胶果。 你還可以將路徑傳遞到公共目錄中的文件或目錄以獲取該資源的絕對路徑。 它將簡單地將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ā) Ramsey\Uuid\Exception\UnsatisfiedDependencyException游昼。 要解決此問題甘苍,只需運行以下命令即可使用 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载庭。

$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ù):一個值和一個閉包标锄。該值將被傳遞給閉包顽铸,然后該值將被返回。閉包返回值無關(guān)緊要料皇。

$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() 函數(shù)會dump給定的變量歉眷,同時也支持同時傳入多個變量牺六。這對調(diào)試非常有用。

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

str_slug()

str_slug() 函數(shù)根據(jù)給定的字符串生成一個友好的URL汗捡。你可以使用此功能為你的帖子或產(chǎn)品標題創(chuàng)建一個 slug 淑际。

$slug = str_slug('Helpers in Laravel', '-');

// helpers-in-laravel

optional()

optional() 函數(shù)接受一個參數(shù),你可以調(diào)用它的方法或訪問屬性扇住。如果傳遞的對象為null春缕,則方法和屬性將返回null而不是導(dǎo)致錯誤或拋出異常。

$user = User::find(1);

return optional($user)->name;

關(guān)于更多PHP的使用艘蹋,請前往 PHPCasts社區(qū)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锄贼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子女阀,更是在濱河造成了極大的恐慌宅荤,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浸策,死亡現(xiàn)場離奇詭異冯键,居然都是意外死亡,警方通過查閱死者的電腦和手機庸汗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門惫确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚯舱,你說我怎么就攤上這事雕薪。” “怎么了晓淀?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵所袁,是天一觀的道長。 經(jīng)常有香客問我凶掰,道長燥爷,這世上最難降的妖魔是什么蜈亩? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮前翎,結(jié)果婚禮上稚配,老公的妹妹穿的比我還像新娘。我一直安慰自己港华,他們只是感情好道川,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著立宜,像睡著了一般冒萄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橙数,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天尊流,我揣著相機與錄音,去河邊找鬼灯帮。 笑死崖技,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的钟哥。 我是一名探鬼主播迎献,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腻贰!你這毒婦竟也來了忿晕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤银受,失蹤者是張志新(化名)和其女友劉穎践盼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宾巍,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡咕幻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了顶霞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肄程。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖选浑,靈堂內(nèi)的尸體忽然破棺而出蓝厌,到底是詐尸還是另有隱情,我是刑警寧澤古徒,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布拓提,位于F島的核電站,受9級特大地震影響隧膘,放射性物質(zhì)發(fā)生泄漏代态。R本人自食惡果不足惜寺惫,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹦疑。 院中可真熱鬧西雀,春花似錦、人聲如沸歉摧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叁温。三九已至再悼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間券盅,已是汗流浹背帮哈。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工膛檀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锰镀,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓咖刃,卻偏偏與公主長得像泳炉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子嚎杨,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,321評論 8 265
  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒花鹅。 unpack() 函數(shù)從二進制字符串對數(shù)據(jù)進行解...
    上街買菜丶迷倒老太閱讀 1,352評論 0 20
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,118評論 0 13
  • 最近在紀錄片中看到枫浙,有的魚類為了逃脫天敵的追捕刨肃,竟進化出了翅膀÷嶂悖回頭想想真友,人的蛻變又何嘗不是如此。 每個人心中都有...
    汪真人閱讀 131評論 1 1
  • 思想者遠方01 從今天起,把寫作當成一種習慣是嗜。 你還記得上一次寫一篇800字的文章是什么時候嗎愈案?如果不能清晰的記起...
    恒亮閱讀 227評論 3 2