0

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

我有一个带有id,nameparent_id一个content字段的表。将来我可能会将内容移动到content表格中,以便使用 fk 将多个内容添加到菜单项中。但这里不是这样。

问题是:

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

1 回答 1

0

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

在任何情况下,请确保以一种有意义的方式将代码构造成控制器和操作。例如,在您的 CMS 中,用户可能会编辑、创建或删除帖子。然后,您可以创建一个PostController在其中编写editAction,createActiondeleteAction.

可以将 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
    }
}
于 2012-08-13T10:42:11.233 回答