0

我正在使用 PhalconPHP 框架开发一个应用程序,随着我的应用程序变得越来越大,我的视图文件夹变得相当混乱。

目前我的views文件夹如下所示:

views_layouts
    |_index_..
    |_blog_..
    |_news_..
    |_etc_..

有没有办法将我的控制器相关文件夹移动到一个单独的文件夹中,pages这样我的目录结构看起来像这样?

views_layouts_index.volt
    |       |_blog.volt
    |       |_news.volt
    |       |_etc.volt
    |
    |_pages_index_..
          |_blog_..
          |_news_..
          |_etc_..
4

2 回答 2

1

我想你可以把你的文件夹结构改成这样。

layouts
 |   controller_name.volt
 |   other_controller.volt
controller_name
 |   action_name.volt
 |   other_action.volt
other_controller
 |  action_name.volt
 |  other_action.volt

在布局文件夹中的文件中,您可以放置​​类似这样的内容

{% extends "templates/base.volt" %}
{% block title %}Title{% endblock %}{% block content %}
{{ content () }}{% endblock %}

在 templates/base.volt 文件中,您可以放置​​类似这样的内容

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
      <title>{% block title %}{% endblock %}</title>
</head>

</head>

<body>
{% block content %}{% endblock %}

  </body>
</html>

所有这些都应该在views文件夹中

于 2015-02-18T18:59:05.210 回答
1

我可以通过编辑ControllerBase课程自己解决这个问题。

// Change the default views directory to /app/views/pages/
$moduleName = $this->dispatcher->getControllerName();     // Eg: blog
$actionName = $this->dispatcher->getActionName();         // Eg: index
$this->view->pick("pages/$moduleName/$actionName");       // Result: "pages/blog/index"

您甚至可以pick()多次调用以覆盖控制器中的任何视图。

于 2015-07-20T12:44:53.757 回答