2014-04-10 20 views
0

我在构建一个CakePHP应用程序,我试图让用户从列表中选择一个电子邮件模板,然后将它发送到他们选择的地址。我想避免对模板名称进行硬编码,因为它们可能会随着时间的推移而发生变化和更新。我如何生成我所有电子邮件模板的文件名列表(在我的控制器中)?我尝试使用CakePHP文件夹类访问应用程序/视图/电子邮件/文本的内容,如下所述:http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.htmlCakePHP-检索电子邮件模板的名称

但是,这没有奏效;我无法获取该目录的内容。我只需要访问文件名;一旦我得到它们,我就可以完成其余的逻辑。

+0

你为什么无法访问内容? Folder类可以访问你的app文件夹中的所有内容。至少,那应该。你尝试过香草PHP方法吗? – Jelmer

+0

我不知道为什么它不适合我;我无法通过Folder类访问任何内容。我甚至试图简单地访问img文件夹中的东西,如下所示:$ dir = new Folder('/ img'); $ files = $ dir-> find('。* \。png');但它回来了。我不熟悉vanilla PHP;我会去查找它 – Jozomby

+0

我刚刚意识到我已禁用了网址重写;可能导致无法读取目录内容? – Jozomby

回答

0

以任何方法在你的控制器试试这个:

App::uses('Folder', 'Utility'); 
    $dir = new Folder(APP . 'View/Emails/text/'); 
    $files = $dir->find('.*\.ctp'); 
    //print the array to inspect 
    pr($files); 

应该告诉你所有的.ctp模板文件在/ app /查看/电子邮件/文本/

+0

非常感谢!这工作! – Jozomby

+0

再次感谢编辑Mark :) –