2013-10-07 62 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) –