CakePHP查看更改扩展名

时间:2011-01-08 14:37:44

标签: cakephp

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

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

由于

4 个答案:

答案 0 :(得分:10)

您可以使用

AppController中设置扩展程序
public $ext = '.yourext';

答案 1 :(得分:1)

这是回复Cameron关于使用多个扩展的问题的评论,因为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; ?>

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

答案 2 :(得分:0)

  

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

     

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

示例:

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

      

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

    到您的应用可以了解展示.php,您在$ext = '.php'

  • 中添加公开PostsController.php
  • 现在,你又跑了。.posts/add =&gt; okie,cakephp了解扩展.php

注意:如果您使用atrribute $ext = '.php'但文件视图名为.ctp,则默认情况下将使用cakephp extention .ctp

答案 3 :(得分:0)

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