2011-05-25 30 views
-1

我正在使用PHP MVC模式,沒有任何框架,現在我有一個視圖文件與一些數據被插入到它,這將被保存到數據庫中。現在我的問題是如何將視圖文件連接到控制器或模型。如何使用PHP MVC模式連接View到Controller?

+0

現在我有連接通過控制器視圖文件,但現在我需要怎麼視圖文件連接到控制器,因爲我需要的視圖文件數據保存到數據庫 – useCase 2011-05-25 18:51:13

+2

可能重複[如何連接控制器在PHP OOP查看?(http://stackoverflow.com/questions/6111599/how-to-connect-controller-to-view-in-php-oop) – Cfreak 2011-05-25 18:52:14

回答

3

該視圖不應該保存任何內容到數據庫,這是模型的工作。該視圖僅用於渲染。通常,您將在您的控制器中實例化一個視圖對象,將它傳遞給您要渲染的數據,然後調用一些渲染方法。也許是這樣的:

$view = new View(); 
$view->setTemplate('/path/to/file'); 
$view->setValues(array(
    'key1' => 'value1', 
    'key2' => 'value2', 
)); 
$view->render(); 

如果你想保存在數據庫中的數據,這是無關的視圖。你可能有這樣的事情:

$model = new Model(); 
$model->setValues(array(
    'key1' => 'value1', 
    'key2' => 'value2', 
)); 
$model->save(); 
$view = new View(); 
$view->setTemplate('path/to/file'); 
$view->setValues($model->getValues()); 
$view->render(); 
+0

但我沒有使用任何類或對象裏面查看文件。它就像一個簡單的HTML文件。 – useCase 2011-05-25 18:55:34

+0

它不應該*有*其中定義的任何類。不要認爲它是一個「視圖文件」,將其視爲一個由View對象呈現的模板。你必須編寫一個View類,它將作爲輸入,模板和它需要的任何可能的變量,並輸出結果HTML。這可能和調用readfile()一樣簡單。 – 2011-05-25 19:01:42

0

控制器可以包括視圖和模型文件。

當通過url調用控制器時,使用模型方法獲取或放置內容(在數據庫中),另一個發送數據以查看,並且爲瀏覽器輸出查看。

0

控制器從視圖中獲取數據並將其傳遞到模型中。該模型處理持久性。同樣在HTTP世界中,我會說控制器從請求中獲取數據,而不是直接從視圖中獲取數據,但這些是實現細節。

你只是想確保模型不以任何方式依賴視圖。這是MVC中的主要規則之一。

相關問題