2017-06-28 188 views
2

我正在使用Laravel + AngularJS在這裏做一個Web應用程序,我有一個問題。我需要爲我的數據庫中的每個表的模型?在我的數據庫中有87個表格,我需要根據用戶想要的輸入來查詢所有這些表格。模型在Laravel 5

我只是想確保所有的表格都必須有一個模型文件,或者如果只有一個就足夠了。

+0

請添加一些代碼,你已經嘗試過。 –

回答

0

有通過它可以訪問數據庫表2種方式:

  1. Eloquent ORM(取決於型號)
  2. DB門面Query Builder(獨立於模型)

前,更乾淨和最好的方法來執行數據庫查詢和相關的任務,而後者不乾淨,並且你將很難管理大型應用程序,正如你所說的那樣,你的應用程序中有80多個表。另外,如果你使用雄辯的方式,那麼擁有一個基本模型也是一個更好的方法,這個基本模型將會有你可以在子模型中繼承的通用代碼。就像如果你想存儲做一些DB更改的「用戶ID」,那麼在引導功能中,你可以寫Auth::id()並將該值賦給changed_by字段在你的表上。

在DB Facade方式中,每次執行數據庫操作時都必須對錶名稱進行硬編碼,並且當發現需要更改表名稱時會導致不一致,這是一種罕見的情況如果在文件中有多個表操作正在進行,仍然難以管理。有一些選項可以創建一個全局表名變量,可以訪問它來執行數據庫操作。

結論: 是,創造80+模型來實現雄辯的語言是痛苦的,但對於短期內,隨着應用的增長將是您輕鬆管理,這將有利於其他開發者,如果他們開始研究它,因爲它會給出數據庫的概述,並且會提高代碼的可讀性。

0

這取決於你想如何處理查詢。

如果您想使用Eloquent ORM,您需要模型類來處理對象和關係。這是一個表格的模型,除了可以通過pivot屬性訪問的中間關係表格。

原始SQL查詢也受支持。你並不需要模型類,因爲結果數組中的每個結果都是一個PHP StdClass對象。你需要編寫原始的SQL。

參見Laravel documentation