2011-09-02 23 views
2

比方说,我有一个模型'Retrieve.php',我有一个名为'Retrieve'的类,它从数据库中检索帖子。然后我在Index.php的控制器中加载该模型,检索帖子并将其传递给查看。我是否需要为每个控制器创建一个模型?什么是更好的做法?

现在,我还有一个页面,我必须显示这些帖子。比如说Sidebar.php什么的。现在又一次,我必须检索这些帖子。那么,我是否可以再次加载'Retrieve.php',或者我必须为Sidebar.php创建一个扩展'Retrieve.php'的更多模型?什么是更好的做法?

而且,一般来说,我是否需要为每个控制器在一个好的PHP MVC中创建一个新模型?如果是的话,可能Controller和Model应该被命名为相同?还有什么建议/意见?

谢谢。

+0

模型类应该被命名为Posts然后不是Retrieve。使用名词来表示类名。 – Gordon

回答

1

只创建你需要的模型。请记住,MVC的重点在于模型与视图分离。这意味着完全可以重用任何你需要的工作来完成工作。如果您有多个需要访问相同数据的视图,只需重新使用相同的模型即可。只要确保给出模型的描述性名称,这样就不会混淆它们应该代表什么。

0

对于该模型表示的每个数据结构,您应该只有一个Model类。因此,如果您有5个控制器,每个控制器都访问相同的模型,您应该仍然只有一个模型类。

0

否 -

模式应该是您的应用程序管理是什么 - 这样反而找回,你的模型类可能应该张贴(也许你有你的domain--线程的名词其他模型类,作者...)

控制器应该访问他们需要做的工作的模型类;一个模型类可以被几个控制器使用,一个控制器可以使用几个模型类。

5

一般来说,模型应该代表一个商业实体而不是一个过程。即,它应该是一个名词而不是动词。在你的情况下,你需要一个帖子的模型,并且该模型中的方法将执行“你对帖子做的事情”。控制器然后描述页面发生什么操作。在这种情况下,/ post页面的控制器将检索帖子并将其传递给视图进行渲染。

相关问题