我想为admin-generator创建自己的模板, 所以我遵循了一个教程,我现在正在基于“管理”模板制作自己的模板。 但是我在文件“newAction”中定义了一个名为“rubrique”的新变量,当我试图在模板“newSuccess.php”中调用它时,我得到了这个错误:
注意:未定义的变量:位于C:\ wamp \ www \ PhpProject2 \ data \ generator \ sfDoctrineModule \ immo \ template \ templates \ newSuccess.php中的rubrique
newAction:
public function executeNew(sfWebRequest $ request) { $ this-> rubrique = 12;
}
NewSuccess.php:
echo $ rubrique;
ps:我简化了代码
有人有解决方案吗?抱歉我的英语不好:p
答案 0 :(得分:0)
C:\ wamp \ www \ PhpProject2 \ data \ generator \ sfDoctrineModule \ immo \ template \ templates \ newSuccess.php在线
我不熟悉Doctrine,但您应该在
中定义自定义操作和模板apps / backend / modules / YOURMODULE / actions(for actions )
和
apps / backend / modules / YOURMODULE / templates(模板)
您是否按照here所述的步骤进行操作? http://www.symfony-project.org/jobeet/1_4/Doctrine/es/12
此致
答案 1 :(得分:0)
抱歉延迟。
好的......我想我可能知道你的问题。我花了一大块时间修改项目的管理生成器,但这是在1。5年前,所以我不得不刷新我的记忆。
我正在采取一种有根据的猜测,说你在data\generator\sfDoctrineModule\immo\template\templates\newSuccess.php
中回应你的变量,如此:
<?php echo $rubrique; ?>
这些文件实际上先编译然后执行。在第一遍中,var $rubrique
不可用。试试这个:
[?php echo $rubrique; ?]
注意方括号。我认为文件是通过正则表达式或str_replace或其他东西运行的;我记不起来了。
尝试此操作,然后清除重要的缓存./symfony cc
。它现在应该工作。
或者,覆盖模板并将其放在模块的目录中,并将其与普通的php标签一起使用。
希望这会有所帮助:)
修改强>
您可能已经知道这一点,但是如果您想要如上所述覆盖该文件,它将在缓存中提供:cache\frontend\dev\modules\{$MODULE_NAME}\templates\newAction.php
,其中{$MODULE_NAME}
将是您的模块的名称。单词auto
;例如:autoUser
。
这会覆盖缓存版本。将其复制到模块的模板目录中,然后根据心脏内容进行编辑。