菜单和数据库中的所有页面内容

时间:2012-08-13 08:52:15

标签: php zend-framework zend-db

我正在编写带有一些cms功能的简单网站。将所有菜单项和页面内容保存在数据库中会很好。

我的表格包含idnameparent_idcontent字段。将来我可能会将内容移动到content表,以便将多个内容添加到带有fk的菜单项。但事实并非如此。

问题是:

  1. 我是否需要菜单表中的URL字段?
  2. 我需要什么才能让它发挥作用?每个页面都应该有自己的控制器吗?我是zend framework的初学者,所以请给我一些指示。提前致谢。

1 个答案:

答案 0 :(得分:0)

让我们从问题2开始:每个页面都不需要自己的控制器。如果您的页面是静态的,您甚至可以使用单个操作加载每个页面。对于更动态的处理,您可以为每个页面使用单独的操作。

在任何情况下,请确保以有意义的方式将代码构建到控制器和操作中。例如,在CMS内部,用户可能会编辑,创建或删除帖子。然后,您可以在其中创建一个PostController,其中包含editActioncreateActiondeleteAction

可以将URL存储在表格中,但您不一定要这样做。

单一操作方法(主要针对静态内容)

确保页面idname存储在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
    }
}