簡體   English   中英

PHP和MVC,多個模型

[英]PHP and MVC, multiple models

在一個控制器動作中使用多個模型是不好的習慣? 它應該總是像一個控制器 - 一個模型 - 一個視圖?

不,當然這不是一個壞習慣。 在使用多個表的地方,將需要各種模型。

問題不在於此,而在於框架能夠處理基於這些模型的高級查詢,連接和過濾。 當你“被迫”遵循框架關於數據庫交互的特定美學時,這就是那些bugbears之一,但這當然取決於哪個框架以及你依賴魔術行為的程度。

並非每個項目都是一個簡單的博客! :)

編輯:我還應該說,這種事情是我對MVC框架的主要抱怨之一。 您的項目試圖實現的目標與框架允許的內容之間的折衷總是在頭發丟失和深夜投入的地方。

我無法想象一次只能使用一個模型。 出於某種原因,這些數據庫被稱為“關系數據庫”。 所有表都相互交互。

我實際上使用的框架只允許加載與該控制器關聯的一個模型。 絕對是一種可怕的經歷,唯一有效的操作是基本的CRUD操作。

不,這不是一個壞習慣。

控制器映射到HTTP資源(也稱為URI)而不是數據模型。 對某個資源(用戶,產品......)的請求通常可能需要從/在各個地方(DB表,文件系統,遠程Web服務......)加載和/或存儲數據,所以a 1:1控制器:模型映射甚至可能是例外而不是規則。 除非您的網站非常簡單。

像其他人一樣,你可以自由地做你想做的事。 我建議查看您正在使用的框架的網站,並了解其他人如何使用它。 他們經常在那里使用“使用XXXX框架的項目”。

和troelskin的評論一樣,1表並不總是等於一個模型。 使用基本活動記錄模式(如CodeIgniter)的一些示例傾向於采用1表1模型方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM