用户可以提交新闻,然后进行编辑。我的问题是,他们是否应该有相同的视图文件,带有几个if if(page == edit) echo "edit news" else echo "submit news"
和类似的内容?
我认为共享相同的表单进行添加/编辑是可行的,而且更为DRY(不要重复)。在RubyonRails中,这是一个非常好的实践/标准。
所以,是的,创建两个视图来添加和编辑,但在两个视图中都包含相同的表单,所以你会有这样的东西:
create.php
edit.php
_form.php
您只需在每个文件中包含_form.php即可。
我仍然会创建两个视图,因为大多数时候表单周围都有不同的文本、图像和其他内容,所以如果你不想到处都有ifs,我会创建两种视图来保持有序和干净:)
与RoR狂热分子会告诉你的相反:视图是不同类的完整实例,而不仅仅是愚蠢的模板。一个合适的视图负责表示逻辑并处理多个模板。
在这种情况下,你们基本上是在做同样的事情。您将使用相同的视图和相同的模板。即使在datamapper(不要与同名ORM混淆。没有关系)级别,应用程序也会使用相同的字段执行相同的UPSERT
语句。只有在一种情况下,newsId
将是NULL
,而在其他情况下,表示表中主键的某个数字。