分享我最喜愛的七個Laravel輔助函數(shù)

發(fā)布時間:2024-02-22
下面由laravel框架教程欄目給大家介紹分享我最喜愛的七個laravel輔助函數(shù),希望對需要的朋友有所幫助!
作為一個以laravel為主的php全棧開發(fā)人員,我會經(jīng)常去尋找一些框架中、可以為我所用的、有效減少開發(fā)時間或者減少代碼復(fù)雜性的方法。
下面是我整理的在平常會經(jīng)常用到的一些不錯的輔助方法。文中方法大都基于laravel7以及更早的版本。(如果遇到問題,請先檢查是否是版本兼容問題)
讓我們一探究竟吧
str::limit()
我們的第一個輔助函數(shù) 獲取一個字符串并用一個設(shè)定的字符長度限制截斷它 。它有兩個必須參數(shù):你想截斷的字符串,以及返回的被截斷的字符串的字符長度限制。
use illuminate\\\\support\\\\str;$truncated = str::limit('the quick brown fox jumps over the lazy dog', 20);// the quick brown fox ...你也可以傳入第三個可選參數(shù)來控制返回的字符串后顯示什么。
use illuminate\\\\support\\\\str;$truncated = str::limit('the quick brown fox jumps over the lazy dog', 20, '[...]');// the quick brown fox [...]我發(fā)現(xiàn)這用于把一大段文本縮短為摘要或文章列表的帖子預(yù)覽是完美的。
head()
這個功能超贊。 一個簡單的方法通常由幾個嵌套的原始php函數(shù)組成,head()會返回數(shù)組的第一個元素。 由于其全局性和無處不在的性質(zhì),我已經(jīng)在許多不同的應(yīng)用程序中使用了它。
$array = [100, 200, 300];$first = head($array);// 100想要反著來嗎? 使用last方法可以獲取數(shù)組的最后一個元素。
$array = [100, 200, 300];$last = last($array);// 300這是關(guān)于使用head和last方法的最佳方法,因為它們根本不影響原始數(shù)組。
str::between()
顧名思義, str::between() 會 返回字符串中的內(nèi)容。如果沒有找到指定字符串,返回 null 。
use illuminate\\\\support\\\\str;$slice = str::between('my name is inigo montoya.', 'my name is ', '.');// 'inigo montoya'我喜歡用這種方式從 () 或 [] 之間獲取信息、返回 url 中的特定部分、甚至是從 html 標簽中解析數(shù)據(jù)。
blank()
它 和empty()差不多,但是更好用。它根據(jù)你傳入的參數(shù)是否包含實際數(shù)據(jù),來返回一個布爾值。
// all of these return trueblank('');blank(' ');blank(null);blank(collect());// all of these return falseblank(true);blank(false);blank(0);這個輔助函數(shù)在結(jié)合表單驗證、除去 api 中沒有規(guī)范輸入的數(shù)據(jù)時,特別有用。
它比 empty(trim()) 更好用。
str::contains()
我們期待已久的輔助函數(shù), 確定一個字符串中是否包含另一個字符串. 這個問題在 stackoverflow 和其他編程論壇上已經(jīng)被問過很多次了, 因為目前在普通php程序中只能使用 strpos.
use illuminate\\\\support\\\\str;$contains = str::contains('my name is inigo montoya.', 'inigo');// true$contains = str::contains('my name is inigo montoya.', 'andrew');// false隨著最近的rfc的批準,php將很快擁有自己的str_contains方法,這將使該方法過時。不過在此之前,它是laravel中最有用的輔助函數(shù)之一。
arr::pluck()
該方法可以說是我在本文中列出的更強大的方法之一,arr::pluck 遍歷多維數(shù)組并檢索給定鍵的所有值。
讓我們來看一個簡單的例子:
use illuminate\\\\support\\\\arr;$array = [ ['website' => ['id' => 1, 'url' => 'reddit.com']], ['website' => ['id' => 2, 'url' => 'twitter.com']], ['website' => ['id' => 3, 'url' => 'dev.to']],];$names = arr::pluck($array, 'website.url');// ['reddit.com', 'twitter.com', 'dev.to']傳入一個數(shù)組和一個點符號字符串來確定我們想要的鍵值,然后遍歷多維數(shù)組,并將指定鍵所對應(yīng)值的一維數(shù)組返回給我們。
我在返回的api數(shù)據(jù)中多次使用過該方法(當我覺得不需要使用整個的集合時)。它使獲得id,名稱或其他屬性的數(shù)組變得非常容易,而無需創(chuàng)建整個foreach循環(huán)。
collect()
一旦發(fā)現(xiàn)集合有關(guān)的信息,我就不會停止使用它們。 這可能是我發(fā)現(xiàn)自己最常使用的助手函數(shù),它可以讓您 將數(shù)組轉(zhuǎn)換為集合。
為什么這很重要? 因為集合帶有大量的便捷方法,您可以將它們組合在一起用最簡單的閉包參數(shù)對數(shù)組執(zhí)行各種過濾,排序和修改等操作。 沒有foreach 循環(huán),沒有中間變量,只是干凈的代碼。
看看這個簡單的例子:
$collection = collect(['keys', 'krates']);return $collection->map(function ($value) { return str::upper($value);});// ['keys', 'krates']return $collection->filter(function ($value) { return strlen($value) > 4;});// ['krates']老實說,這只是集合的冰山一角。 我在項目中都使用了它們,尤其是當我要處理不是來自數(shù)據(jù)庫模型的龐大而復(fù)雜的數(shù)據(jù)集時。 csv 數(shù)據(jù),外部api請求和目錄結(jié)構(gòu)都可以從放入集合中使用。
這就是我現(xiàn)在所了解的!
原文地址:https://dev.to/aschmelyun/my-favorite-la…
譯文地址:https://learnku.com/laravel/t/43776
上一個:電氣技術(shù)詳解三菱PLC和西門子PLC的基本區(qū)別
下一個:電腦連不上網(wǎng),手機熱點也連不上(電腦連手機熱點卻上不了網(wǎng))

如何選購一款適合自己的電機馬達?
滿多少周歲販毒負刑事責(zé)任
華為p9plus和mate8(華為p8和p9屏幕一樣大么)
怎么樣才構(gòu)成巨額財產(chǎn)來源不明罪?
airpods黃燈閃爍是什么意思(AirPods黃燈閃爍)
公司名稱變更需要對勞動合同做變更嗎
新個人所得稅
bmw american(bmw美國)
天貓超市沒有生鮮了嗎(天貓超市沒有生鮮了嗎)
云服務(wù)器vps價格比對
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos