【问题标题】:CakePHP View change extensionCakePHP 查看更改扩展
【发布时间】:2011-01-08 14:37:44
【问题描述】:

如何将 CakePHP 视图的扩展名从 .ctp 更改为 .php

我已经看到 /cake/libs/view.php var $ext = '.ctp'; 中有这一行设置扩展名,但我如何从我的 /app/ 文件夹中执行此操作,这样它不会影响 Cake 核心文件。

谢谢

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    您可以在AppController 中设置扩展名

    public $ext = '.yourext';
    

    【讨论】:

    • 接受 .php 和 .ctp 这样的多个扩展名怎么样?
    • 您不能指定多个扩展名,但是如果找不到 .php 文件,似乎会退回到 .ctp。不过,这不适用于元素(我为此问题开了一张票)。
    【解决方案2】:

    这是对 Cameron 关于使用 multiple 扩展问题的评论的回复,因为 cakephp 不允许您指定多个扩展。

    我将Mustache 用于单个站点,该站点将merb、rails2、rails3 和cakephp 用于站点的不同部分。蛋糕网站“接收”常见布局元素的小胡子文件,但这些模板具有我的蛋糕网站无法识别的“.mustache”文件扩展名。我的解决方法基本上是 dhofstet 在您的特定用例的上下文中建议的。简而言之,创建一个看起来像这样的包装器:

    <?
      $tmp = $this->ext;
      $this->ext = '.mustache';
    ?>
    <?= $m->render($this->renderElement('moznav/advanced_header'), array('foo' => $bar)) ?><br />
    
    <? $this->ext = $tmp; ?>
    

    当流程返回给调用者时,你继续使用你的本地文件扩展名。

    【讨论】:

      【解决方案3】:

      如何将 CakePHP 视图的扩展名从 .ctp 更改为 .php

      我看到 /cake/libs/view.php var $ext = 中有这一行 '.ctp';设置扩展,但我怎么能从我的 /app/ 文件夹,因此它不会影响 Cake 核心文件。

      示例:

      • 你有查看posts/add.ctp
      • 现在您将add.ctp 重命名为add.php
      • 然后你运行.../posts/add消息错误显示:

        错误:找不到 PostsController::add() 的视图。

        到你的应用可以理解扩展.php,你在PostsController.php中添加行public $ext = '.php'

      • 现在,你又跑了。.posts/add => okie,cakephp 理解扩展 .php

      注意:如果你使用atrribute $ext = '.php'但文件视图名为.ctp,则默认使用cakephp扩展.ctp

      【讨论】:

        【解决方案4】:

        我发现这篇文章是因为我遇到了同样的问题。 Github 上的 Predominant TwigView 插件文档中没有提到这一点。我厌倦了那些只解释一半事情并且我们不得不猜测下半部分的文档。这是对时间的极大浪费,会毫无意义地减慢项目的速度。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-02
          • 1970-01-01
          • 2021-01-22
          • 1970-01-01
          • 2021-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多