我正在使用PhalconPHP框架开发一个应用程序,随着我的应用程序变得越来越大,我的视图文件夹变得相当混乱。
目前我的views
文件夹如下所示:
views_layouts
|_index_..
|_blog_..
|_news_..
|_etc_..
有没有办法将我的控制器相关文件夹移动到名为pages
的单独文件夹,所以我的目录结构如下所示?
views_layouts_index.volt
| |_blog.volt
| |_news.volt
| |_etc.volt
|
|_pages_index_..
|_blog_..
|_news_..
|_etc_..
答案 0 :(得分: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>
&#13;
所有这些都应该在views文件夹中
答案 1 :(得分: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()
来覆盖控制器中的任何视图。