老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Laravel中Sight組件有什么用-創新互聯

這篇文章主要介紹Laravel中Sight組件有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創新互聯公司-云計算及IDC服務提供商,涵蓋公有云、IDC機房租用、溫江服務器托管、等保安全、私有云建設等企業級互聯網基礎服務,聯系熱線:18980820575

Laravel開發速度可以算是最快的了。但是,現在如果加上Sight,那么,你的開發速度會更加快。
Sight做了什么呢?
Sight是在Server Side實現了一個Presenter層。從而讓你把從服務器中查出的數據輕松轉換為可展示的數據。自從有了Sight,Laravel成了支持Server Side的MVP模式的框架。
為什么要用Sight呢?
一、是加快開發速度。
二、國內的Phper都了解,大廠是禁止SQL聯表三個表以上的。遇到初學者,會在FOR循環中查詢數據庫。如果你禁止了,則還有可能是,他們把相關ID PLUCK出來。查出結果,然后,再FOR循環中嵌套FOR循環去查相關的關聯數據。
Sight則是提供了很好的Pluck函數,查出ID后,請求到相關數據交給Sight,Sight會為你拼接好數據。它的做法是通過關聯ID為KEY把數據整理好。從而大大提升了程序效率。
三、Sight的使用相當簡單。
比如以下示例,幾乎類似于Model的使用。

namespace App\Presenter

use Bardoqi\Sight\Presenter;
use Bardoqi\Sight\Traits\PresenterTrait;
use Bardoqi\Sight\Enums\MappingTypeEnum 
use Bardoqi\Sight\Enums\PaginateTypeEnum 
use App\Repositories\ArticleRepository;
use App\Repositories\UserRepository; 

class ArticlePresenter extents Presenter
{
   use PresenterTrait;

   public function getArticleList($where)
   {
       $articleArray = ArticleRepository::getList($where);
       $user_ids = $this->selectFields('id','title','created_at','created_by')
            ->fromLocal($articleArray,'articles')
            ->pluck('created_by');
       $users = UserRepository::getUsersWithIds($user_ids);
       $this->innerJoinForeign($users,'userss')
            ->onRelationByObject(Relation::of()
                ->localAlias('articles')
                ->localField('created_by')
                ->foreignAlias('users')
                ->foreighField('id')) 
            ->addFieldMappingByObject(FieldMapping::of()
                ->key('created_at')
                ->src('created_at')
                ->type(MappingTypeEnum::METHOD_NAME))
            ->addFieldMappingByObject(FieldMapping::of()
                ->key('created_by')
                ->src('user_name')
                ->type(MappingTypeEnum::JOIN_FIELD));         
       return $this->toPaginateArray(PaginateTypeEnum::PAGINATE_API);
   }
}

上例中,代碼則是把created_at從int轉換成了時間,把created_by從user id轉換成了用戶名。
我們看出:created_at所用的是MappingTypeEnum::METHOD_NAME,這個方法在哪里呢,是在PresenterTrait中。所以,你也可以定義自己的Trait。
created_by則是直接讀取關聯數組中的user_name,因為用的是MappingTypeEnum::JOIN_FIELD。
上面代碼看起來有些長,但是,onRelationByObject()可以改用 onRelation()傳參方式,代碼就短了。
同樣addFieldMappingByObject(),改用addFieldMappingList()用數組傳入,代碼也短了。

Sight遠遠不只是這一點功能,它不僅支持MySQL查出的數據,同時支持ElasticSearch查出的數據。
雖然是純數組操作,它一樣也有innerJoin和outerJoin,并且,有hasOne,hasMany ……
當然,還有更多的功能,這個你就要仔細看文檔了。

Sight試圖解決你查出數據后,將其轉換成可展示數據中的不爽,它做得很好,真的能讓你 Coding More Happy; Coding More Quickly!

Github 地址: https://github.com/BardoQi/Sight

Sight——殺手級提升Laravel開發速度的組件現在開源了!趕緊FORK,趕緊STAR!

以上是“Laravel中Sight組件有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!


當前題目:Laravel中Sight組件有什么用-創新互聯
鏈接URL:http://www.xueling.net.cn/article/dpijpo.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 少妇人妻14页_麻花色 | 黄色一区二区三区四区 | 一区二区三区中文在线 | 少妇扒开腿让我爽了一夜 | 亚洲熟女综合色一区二区三区 | 久艹在线观看视频 | 中文字幕第27页 | JAPANESE高潮流白浆 | 毛片毛片 | 曰韩中文字幕 | JVID亚洲精品无圣光图套 | 漂亮人妻被黑人久久精品 | 夜色资源站www国产在线观看 | 一级久久19久久久区区区区区区 | 日本狠狠干| 亚洲国产精品久久久久婷婷软件 | 曰本无码人妻丰满熟妇5g影院 | 一区二区三区中文免费 | 少妇无码精品在线观看 | 免费看的黄色av网站 | 成人在线观看免费精品 | 天堂SV在线最新版在线 | 高清一区二区三区视频 | 浪漫樱花动漫在线观看官网 | a在线播放 | 五月婷婷激情六月 | 麻豆激情视频在线 | 精品资源成人 | 国产精品久久久久久久久粉嫩 | 艳妇荡女的呻吟干柴烈火视频 | 精品无码人妻一区二区免费蜜桃 | 国产性精品 | 无码人妻一区二区三区免费视频 | 国产一区二区三区视频网站 | 91精品国产一区二区三区四区在线 | 色网站视频在线观看 | 青青操天天干 | 成人亚洲一区二区三区在线 | h成年动漫在线看网站 | 亚洲天堂2020 | 一级毛片成人免费看a |