2013-10-07 61 views
1

我看了一篇文章,談論如何創建域對象here。 作者正在解釋如何設計類。簡而言之,每個真實世界實體(即User類,Comment,Post等)和getters + setter(檢查數據的有效性)都有一個類。模型和域對象

對於一對多關係,爲了例舉與單個帖子相關的所有評論,作者使用數組將類Comment的實例存儲到Post類的實例中。但這裏是我不明白:

$post = new Post(); 

$post->addComment(new Comment()); 
$post->addComment(new Comment()); 
$post->addComment(new Comment()); 

$postModel = new PostModel(); 
$postModel->insert($post); // Should also insert (or not !) the added comments. 

當我們要插入新的崗位,相關的評論可能會或可能實際不存在(我的例子並沒有做出很大的意義,因爲你只能評論存在的帖子,但這只是一個例子)。模型應該在添加之前檢查每個添加的評論是否存在?

此外,如果你知道一篇文章,將解釋如何正確地寫一個模型,在上述文章的作者所使用的相同哲學,這將是很好的。

+0

沒有,模型不應該檢查什麼選擇,這是一個控制器工作 –

+0

感謝您的評論。爲什麼是管制員的工作? – Virus721

+0

由於MVC的邏輯:http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller在模型中的'insert()'方法應該在控制器 –

回答

-1

我覺得首先你需要創建信息,然後添加評論,

$post = new Post(); 
$post->populate($postData); 
$post->save(); 
$post->addComment(new Comment()); 

或在後期添加評論

$post = new Post($idPost); 
$post->addComment(new Comment()); 
+0

-1:你在那裏有[有效記錄](http://martinfowler.com/eaaCatalog/activeRecord.html) –