@作者 : SYFStrive
?
@博客首頁 : HomePage
??: THINK PHP
??:個(gè)人社區(qū)(歡迎大佬們加入) ??:社區(qū)鏈接??
??:覺得文章不錯(cuò)可以點(diǎn)點(diǎn)關(guān)注 ??:專欄連接???? VUEJS(??) ?? MYSQL(??) ?? 微信小程序(??) ?? PHPMYSQL(??) ?? UNIAPP開發(fā)(??)
?????????
???????????????? ???????? ?
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
????????????? ????????????
??????? 不能 ??? ????????
??????? 白嫖 ????????????
?????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????
????????????????????????
提示:以下是本篇文章正文內(nèi)容
PHP LARAVEL 簡(jiǎn)介
- Laravel是一種流行的開源PHP Web應(yīng)用程序框架,由Taylor Otwell在2011年創(chuàng)建并發(fā)布。它提供了一個(gè)簡(jiǎn)潔優(yōu)雅的語法和豐富的功能集,旨在使Web開發(fā)過程更快速、簡(jiǎn)單和愉悅。
-
MVC架構(gòu)模式:Laravel采用了MVC(Model-View-Controller)架構(gòu)模,將應(yīng)用程序的邏輯分為不同的層,提高了代碼的可維護(hù)性和可測(cè)試性。
-
簡(jiǎn)潔的語法和表達(dá)力:Laravel框架支持具有簡(jiǎn)潔而表達(dá)力的語法,使得編寫清晰、易讀、易維護(hù)的代碼成為可能。
-
路由系統(tǒng):它提供了一個(gè)強(qiáng)大且靈活的路由系統(tǒng),通過簡(jiǎn)單的配置和代碼即可定義Web應(yīng)用程序的路由規(guī)則,實(shí)現(xiàn)URL到控制器的映射。
-
數(shù)據(jù)庫抽象層:Laravel提供了一個(gè)簡(jiǎn)便的數(shù)據(jù)庫抽象層,支持多種數(shù)據(jù)庫系統(tǒng),并通過Eloquent ORM提供了一種優(yōu)雅的方法來與數(shù)據(jù)庫進(jìn)行交互。
-
權(quán)限和認(rèn)證系統(tǒng):Laravel提供了內(nèi)置的身份驗(yàn)證和授權(quán)功能,使得實(shí)現(xiàn)用戶身份驗(yàn)證、訪問控制和權(quán)限管理變得簡(jiǎn)單和便捷。
-
緩存系統(tǒng):Laravel支持多種緩存后端,包括文件、數(shù)據(jù)庫、Memcached和Redis等,讓你可以輕松地實(shí)現(xiàn)緩存數(shù)據(jù),提升應(yīng)用程序的性能。
-
強(qiáng)大的擴(kuò)展性:Laravel通過Composer和Packagist等工具提供了豐富的擴(kuò)展包生態(tài)系統(tǒng),可以快速集成各種功能組件和第三方庫,加快開發(fā)進(jìn)程。
-
測(cè)試支持:Laravel鼓勵(lì)編寫和運(yùn)行測(cè)試,提供了一套豐富的測(cè)試工具和斷言,幫助開發(fā)者確保代碼的質(zhì)量和可靠性。文章來源:http://www.zghlxwxcb.cn/news/detail-691335.html
- 總的來說,Laravel框架以其易用性、優(yōu)雅的語法、豐富的功能和強(qiáng)大的擴(kuò)展性受到了廣大開發(fā)者的喜愛。它提供了
PHP LARAVEL 集合的使用
???創(chuàng)建集合 & 簡(jiǎn)單使用
- 什么是集合??? 它是一種更具讀取性和處理能力的數(shù)組封裝;
- 比如,我們從數(shù)據(jù)庫得到的數(shù)據(jù)列表,它就是一種集合;
- 數(shù)據(jù)集合,提供了大量的方法方便我們進(jìn)行各種操作;
- 除了數(shù)據(jù)庫對(duì)象返回的數(shù)據(jù)集合之外,我們還可以自行創(chuàng)建數(shù)據(jù)集合;
//創(chuàng)建一個(gè)數(shù)據(jù)集合
$collection = collect(['張三', '李四', '王五', null,null]);
//使用 dd 查看它的類型
dd($collection);
//直接 return 可以返回
return $collection;
- 數(shù)據(jù)集合提供了大概有100多個(gè)處理數(shù)據(jù)集合的方法,可鏈?zhǔn)秸{(diào)用;
- 常見的集合方法
//以底層數(shù)組形式輸出
return $collection->all();
//map 方法,類似訪問器,可修改輸出
return $collection->map(function ($value, $key) {
return $key . '[' . $value . ']';
});
//支持鏈?zhǔn)?,reject 移出非 true 的值
return $collection->reject(function ($value, $key) {
return $value === null;
})->map(function ($value, $key) {
return $key . '[' . $value . ']';
});
//filter 篩選為 true 的值,和 reject 相反
return $collection->filter(function ($value, $key) {
return $value === null;
});
//search 找到后返回 key,找不到返回 false
return $collection->search('王五');
//集合的分割
return $collection->chunk(2);
//迭代輸出
$collection->each(function ($item, $key) {
echo $item;
});
- 自定義方法,比如說所有英文大寫;
$collection = collect(['Mr.Zhang', '李四', '王五', null]);
Collection::macro('toUpper', function () {
return $this->map(function ($value) {
return strtoupper($value);
});
});
return $collection->toUpper();
PHP LARAVEL 集合的常用方法
???常用方法
- all()方法,轉(zhuǎn)換為屬性形式輸出,使用 dd 方法看類型;
$collection = collect([1, 2, 2, 3, 4, 4, 4]);
dd($collection->all());
PS:$collection->dd()方法可以以 dd()模式輸出,還有 dump()模式;
- avg()方法返回平均值;
//返回平均值
$collection = collect([1, 2, 3, 4]);
return $collection->avg();
//返回分組平均值
$collection = collect([['男'=>1], ['女'=>1], ['男'=>3]]);
return $collection->avg('男');
- count()方法返回集合總數(shù);
return $collection->count();
PS:相關(guān)的還有 sum()、min()、max()等統(tǒng)計(jì);
- countBy()方法返回?cái)?shù)值出現(xiàn)的次數(shù)或回調(diào)函數(shù)指定值出現(xiàn)的次數(shù);
//值出現(xiàn)的次數(shù)
$collection = collect([1, 2, 2, 3, 4, 4, 4]);
return $collection->countBy();
//回調(diào)搜索相同指定片段的值的次數(shù)
$collection = collect(['xiaoxin@163.com', 'yihu@163.com', 'xiaoying@qq.com']);
return $collection->countBy(function ($value) {
return substr(strrchr($value, '@'), 1);
});
PS:相關(guān)的還有 groupBy()、keyBy()方法;
- diff()方法返回集合數(shù)組之間不相同的部分,組合新的集合;
//diff 返回兩個(gè)集合中不相同的
$collection = collect([1, 2, 3, 4, 5]);
return $collection->diff([3]);
PS:其中還有 diffAssoc()、diffKeys()派生方法;
- duplicates()返回重復(fù)的值;
$collection = collect([1, 2, 2, 3, 4, 5, 5, 6]);
return $collection->duplicates(); //嚴(yán)格派生方法:duplicatesStrict()
- first()返回成立后的第一個(gè)值
//返回判斷成立的第一條數(shù)值
$collection = collect([1, 2, 3, 4]);
return $collection->first(function ($value) {
return $value > 2;
});
PS:相關(guān)的還有 every()、except()、only()、firstWhere()、last()等方法;
- flatten()將多維數(shù)組轉(zhuǎn)換為一維;
$collection = collect(['name'=>'Mr.Lee','details'=>['gender'=>'男', 'age'=>100]]);
return $collection->flatten();
- get()通過鍵名找值;
$collection = collect(['name'=>'Mr.Lee', 'gender'=>'男']);
return $collection->get('name');
PS:相關(guān)的還有 pluck()等;
- has()判斷集合中是否存在指定鍵
return $collection->has('name');
- pop()移出集合中最后一個(gè)值;
$collection = collect([1, 2, 3, 4, 5]);
//$collection->pop();
return $collection;
PS:相關(guān)的還有 pull()、push()、put()方法;
- slice()返回指定值后續(xù)的集合;
$collection = collect([1, 2, 3, 4, 5]);
return $collection->slice(3);
PS:相關(guān)的還有 splice()等方法;
- sort()返回指定值后續(xù)的集合;
$collection = collect([3, 1 , 5, 2, 7]);
return $collection->sort()->values(); //需要配合 values()方法
PS:相關(guān)的有 sortBy()、sortByDesc()、sortKeys()等;
- where()系列方法,和數(shù)據(jù)庫條件一樣;
$collection = collect([
['name'=>'Mr.Lee', 'gender'=>'男'],
['name'=>'Miss.Zhang', 'gender'=>'女']
]);
return $collection->where('name', 'Mr.Lee');
PHP LARAVEL 模型的數(shù)據(jù)集合
???模型數(shù)據(jù)集合
- 數(shù)據(jù)集合,就是已經(jīng)將模型方法 get() 獲取到的數(shù)據(jù)再進(jìn)行處理;
- 比如:map()方法,通過它可以實(shí)現(xiàn)類似訪問器一樣對(duì)字段進(jìn)行處理的效果;
$users = User::get();
//使用集合方法 map 可以對(duì)輸出的字段進(jìn)行過濾
$women = $users->map(function ($user) {
$user->email = strtoupper($user->email);
return $user;
});
return [$women];
PS:數(shù)據(jù)集合支持連綴操作,和數(shù)據(jù)庫連綴一樣;
- 使用 reject()方法,可以獲取條件之外的數(shù)據(jù)內(nèi)容;
$women = $users->reject(function ($user) {
return $user->gender != '女';
})->map(function ($user) {
return $user;
});
- 下面列出常用的集合方法列表:
//判斷集合中是否包含指定的模型實(shí)例
return $users->contains(19);
return $users->contains(User::find(19));
//返回不在集合中的所有模型
return $users->diff(User::whereIn('id', [19,20,21])->get());
//返回給定主鍵外的所有模型
return $users->except([19,20,21]);
//集合也有 find 方法
return $users->find(19);
//返回集合的數(shù)量
return $users->count();
//返回所有模型的主鍵
return $users->modelKeys();
//返回主鍵的所有模型
return $users->only([19,20,21]);
//返回集合中的唯一模型
return $users->unique();
最后
以上是個(gè)人學(xué)習(xí) THINKPHP 的相關(guān)知識(shí)點(diǎn),一點(diǎn)一滴的記錄了下來,有問題請(qǐng)?jiān)u論區(qū)指正,共同進(jìn)步,這才是我寫文章的原因之,如果這篇文章對(duì)您有幫助請(qǐng)三連支持一波
文章來源地址http://www.zghlxwxcb.cn/news/detail-691335.html
到了這里,關(guān)于Laravel 集合的使用 & 集合的常用方法 & 模型的數(shù)據(jù)集合 ⑩的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!