我正在编写带有一些cms功能的简单网站。将所有菜单项和页面内容保存在数据库中会很好。
我的表格包含id
,name
,parent_id
和content
字段。将来我可能会将内容移动到content
表,以便将多个内容添加到带有fk的菜单项。但事实并非如此。
问题是:
zend framework
的初学者,所以请给我一些指示。提前致谢。答案 0 :(得分:0)
让我们从问题2开始:每个页面都不需要自己的控制器。如果您的页面是静态的,您甚至可以使用单个操作加载每个页面。对于更动态的处理,您可以为每个页面使用单独的操作。
在任何情况下,请确保以有意义的方式将代码构建到控制器和操作中。例如,在CMS内部,用户可能会编辑,创建或删除帖子。然后,您可以在其中创建一个PostController
,其中包含editAction
,createAction
和deleteAction
。
您可以将URL存储在表格中,但您不一定要这样做。
单一操作方法(主要针对静态内容)
确保页面id
或name
存储在GET参数中。然后,您可以使用以下代码:
public function genericpageAction()
{
$thePageID = $this->_request->getParam('id');
// fetch the page content from the db based on $thePageID
// and pass it to the view
}
当然,在这里,如果您选择了这种方法,也可以匹配存储在表格中的URL。
多动作方法(更多动态处理,最有可能是您想要的CMS)
您可以为每个页面定义路线,并在相应的操作中加载其内容。例如,对于编辑帖子的页面:
class MyCMS_PostController extends Zend_Controller_Action
{
public function editAction()
{
// fetch the home page content
// do any further processing if necessary
}
}