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>

これはすべてビューフォルダーにある必要があります

于 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 に答える