2012-06-08 44 views
1

我目前有一個網站,我沒有實現MVC,但正在測試水域以查看它是否是我想要做的事情。我在網上環顧四周,沒有找到明確的答案來回答我的問題。我有點理解MVC的概念;但是,我想知道如何處理用戶的頁面與MVC處理。如何使用MVC在不使用參數的情況下加載頁面?

目前,我主要基於參數加載頁面。用戶可以添加自己的引號,並將其插入到數據庫中。然後,要顯示他們添加的作者的引用,用戶將轉到例如mysite.com/author.php?quotee=Randy+Pausch。

理想情況下,我想改變我的網站,以便網址看起來像mysite.com/authors/Randy-Rausch或類似的東西。

這是我不瞭解MVC。我是否需要以某種方式爲每位作者創建一個視圖,如果是的話,我將如何執行此操作?或者,即使它不使用「?quotee = Some + Author」語法,URL的最後一部分實際上也是一個參數?我覺得我有一個基本的MVC我不理解。

如果任何人都可以爲我提供一個很好的方法或一個很好的教程來解決我的問題,我會非常感激。我在靜態頁面上看過教程,但想要基於可由網站用戶創建的頁面的教程。

感謝您的幫助!

+3

這就是所謂的'mod_rewrite'(對於Apache),在內部你將繼續使用GET參數。所以這只是一個風格問題。只是谷歌它,有大量的資源和教程。 (爲了和這些參數一起工作,你應該看看一個調度器,它將路由考慮進去併發送給正確的控制器,但是這對於爲你自己創建一個MVC是很重要的)我希望這有助於你。 –

+1

你在混淆概念......你可以在沒有MVC的情況下擁有漂亮的URL,並且你可以擁有沒有漂亮URL的MVC。 – blockhead

回答

1

您可以創建處理所有應用程序邏輯的「控制器」。在這種情況下,它會查看你正在請求的作者,並決定要顯示哪個「視圖」。您的控制器可以通過「模型」查找每位作者的數據庫信息。你的「控制器」然後可以發送這個作者信息到你的「視圖」,它將顯示它。

您只需要一個「視圖」即可顯示作者頁面。這將是這樣的:

Author name: <?php echo $author_name?> 
Book title: <?php echo $book_title?> 
Category: <?php echo $category?> 

然後在您的控制器,你會碰到這樣的

$data['author_name'] = $this->your_model->get('author_name'); 
$data['book_title'] = $this->your_model->get('book_title'); 
$data['category'] = $this->your_model->get('category'); 
$this->load->view('authors_page', $data); 

顯然有更多的過於它比 - 但我希望,給你一個大概的瞭解。

相關問題