使用典型的項目佈局對我來說,我可能有類似以下內容:
Controllers
| |
| - MoviesController.php
|
Models
| |
| - Movie.php
Views
| |
| - Movies
| |- Create.php
| |- Edit.php
| - Partials
| |- _MovieForm.php
MoviesController
包含兩個行動 - Create()
和Edit($id)
,它們各自擁有的意見。我個人有一個第三個動作爲好,這從兩個動作處理表單的提交:
public function Save()
{
//...snip...
}
Create()
簡單地加載相應的視圖。 Edit()
略有不同,因爲它在將數據傳遞到視圖之前,首先使用我們的模型從數據庫中檢索現有記錄。
這兩個視圖有一個嵌套的「部分」,這是一個常用的HTML片段 - 在這種情況下,_MovieForm.php
,它有我們的表單輸入(它能夠顯示傳入的值)。
表單還包含我們行ID的隱藏輸入字段。只有在我們調用Edit()
操作時纔會給出這個值。
表單提交給MoviesController的Save()
方法,該方法檢查我們是否有傳遞的行ID。如果是這樣,從數據庫中獲取我們的行(再次,由我們的模型表示),更新這些值,然後調用我們的模型的方法Save()
。 Model::Save()
在我們的數據上運行我們的驗證邏輯,並保存到數據庫,或者將數據和驗證錯誤消息一起傳回到視圖。
希望這有助於:)
我認爲你將有一個控制器('Movie'),以及創建一個條目如果尚未創建,或可能'添加(一個'保存()'方法)和' 'edit()'指向該控制器上的'save()'方法。現在有兩種觀點,我不認爲這是一個問題。我的設計不會太聰明。 –