• 游客 您好:

    目前「IT人巴啦啦天地」需要數個專家協助發表文章。

    只要您願意,可以直接與我 ihstat 連絡。我將會給你「專家」身份。

    成為「專家」有什麼好處?目前暫時還沒有。我也只願意提供最多10名會員有這樣的身份。

    他可能可以成為未來非常高的權限。(除了管理) 也可以獲得由浩瀚星空站提供的資源。

  • 本站不接受任何被列入廣告發文黑名單的電子信箱。如您無法註冊,可能是您使用的電子信箱為廣告黑名單信箱。正常的信箱都是可以正常註冊。

    如果您可以証實您的信箱非廣告黑名單,請自行來信 hstaryoching#gmail.com 申請。

    申請請留下您的正統名稱及信箱,並告知從何得知及想進來的理由。

  • 浩瀚星空站已經重新整合並新增新的開發小站天地。

    採用新版的xenforo 2.2.3 做為最新的站點系統。

    中文搜尋已在本站啟用成功,歡迎多加測試看看

    有問題請再回報

教學 Laravel架構規劃教學(三)-Model(ORM)觀念篇

ihstar

管理員
管理成員
大家好,今天來談談 Laravel中的Model 是什麼

在Laravel中的Model。跟之前的CLASS的Model(模組)的解釋會有些不同。
所以為了避免一些誤會,常用的說法就是 ORM

ORM是什麼?就單純的解釋是(Object-Relational Mapping)
整體來說,就是一種資料庫編程的技術統稱。

我常常在教學中,都會問一件事。
到底,ORM是不是DB物件的一種呢?

其實很多人,都把ORM當成DB物件看待。而將它認為其就是操作資料庫的用法。
但我並不會這樣去做解釋。因為很容易給搞混。及寫做方式。

沒錯,雖然ORM的確也是可以去操作SQL語法應用。
但如果將它視為一種DB操作的物件。
那麼您將學不會ORM的精華及原理。

站長我個人,其實是將ORM視為一種「資料容器」的概念。
也就是說,我並不會當它是一個DB控制用的物件。
而是將其當為一種資料庫設計圖兼容器的東西。

這邊說說一個小故事,是以前站長經歷過的事情。
其實站長我本身也是屬於SQL優化能力很強的人。
所以對於SQL語法來說,要怎麼處理操作多複雜性且不影響效能的寫法是很得心應手的。

但在多年前第一次觸摸 ORM 時。真的覺得很難用。
畢竟那時還是將ORM當DB操作再使用。
什麼一對一啊、一對多啊的觀念都還沒有。
資料的讀取還是直接用子查訊+JOIN的處理方式。

這對ORM來說,原本就不給你使用子查訊跟JOIN。
自然用起來會覺得很難順手。

所以初期Laravel中,我其實很少用 MODEL 的東西。大多還是使用DB的處理方式。
但就覺得這樣的使用方式,也並沒想像中的好用。
一度很想放棄ORM的方式。

直到有一天,有個高手問了我一開頭問的話。「ORM是不是DB物件的一種呢?」
我當時回答「是啊,難到不是嘛??」
他只笑笑的跟我說「難怪你會覺得ORM難用,有心學看好官方文件,並拋棄你SQL語法的能力」
然後就不再理我了。

為此,我意識到了一件事「會不會我搞錯了ORM了?」
當然其實他有告訴我。「不要將ORM當DB物件用」

於是我就開始研究啥是ORM。
其實我前前後後,大約摸了3個多月。並試著將我以前一些很複雜的SQL語法。改寫成ORM的程式編程。
其間也跌跌撞撞不少問題出來。
如不用JOIN。那要怎麼處理??從一對一、一對多中。摸索出為何不能用JOIN。
一直到後期研究到多態關係。

研究好ORM後,才慢慢的知道ORM的好處在哪邊。

以上是題外話啦!後期我會慢慢的教ORM的用法處理
 
頂部