CakePHP视图更改扩展

CakePHP视图更改扩展,cakephp,Cakephp,如何将CakePHP视图的扩展名从.ctp更改为.php 我在/cake/libs/view.phpvar$ext='.ctp'中看到了这一行设置扩展名,但如何从我的/app/文件夹中设置扩展名,以免影响核心文件 谢谢您可以在AppController中使用 public $ext = '.yourext'; 鉴于cakephp不允许您指定多个扩展,这是对Cameron关于使用多个扩展的评论的回复 我使用的是一个站点,它在站点的不同部分使用merb、rails2、rails3和cakephp。

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

我在/cake/libs/view.php
var$ext='.ctp'中看到了这一行
设置扩展名,但如何从我的/app/文件夹中设置扩展名,以免影响核心文件


谢谢

您可以在
AppController
中使用

public $ext = '.yourext';

鉴于cakephp不允许您指定多个扩展,这是对Cameron关于使用多个扩展的评论的回复

我使用的是一个站点,它在站点的不同部分使用merb、rails2、rails3和cakephp。蛋糕网站“接收”常见布局元素的小胡子文件,但这些模板具有“.mustache”文件扩展名,我的蛋糕网站无法识别。我的解决方法基本上是DHOFSET建议的,只是在您的特定用例的上下文中加以阐述。简言之,创建一个类似以下内容的包装器:

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

<? $this->ext = $tmp; ?>


当流返回到调用方时,您将继续使用本机文件扩展名

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

我在/cake/libs/view.php var$ext中看到了这一行= “.ctp”;这设置了扩展名,但我如何从我的/应用程序执行此操作/ 文件夹,使其不会影响核心文件

例如:

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

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

    为了让您的应用程序能够理解扩展名
    .php
    ,您可以在
    PostsController.php
    中添加行public
    $ext='.php'

  • 现在,再次运行。
    .posts/add
    =>OK,cakephp了解扩展
    .php


注意:如果您使用一个属性
$ext='.php'
但文件视图名为
.ctp
,cakephp扩展名
。默认情况下,ctp
将使用

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

那么像accept.php和.ctp这样的多个扩展名呢?可能吗?您不能指定多个扩展名,但是如果找不到.php文件,似乎会返回到.ctp。不过,这对元素不起作用(我为此问题开了一张罚单)。