【问题标题】:PhalconPHP - Moving the controller-related view foldersPhalconPHP - 移动与控制器相关的视图文件夹
【发布时间】:2015-02-16 23:20:58
【问题描述】:

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

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

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

有什么方法可以将我的控制器相关文件夹移动到一个名为 pages 的单独文件夹中,这样我的目录结构就如下所示?

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

【问题讨论】:

    标签: phalcon volt


    【解决方案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 文件夹中

    【讨论】:

      【解决方案2】:

      我可以通过编辑 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-04-29
        • 1970-01-01
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 2010-12-29
        • 1970-01-01
        • 2017-12-17
        • 2022-07-09
        相关资源
        最近更新 更多