Php Symfony 1.4表单未在模板上呈现
我的symfony 1.4应用程序的表单未在模板上呈现。模板加载正确。没有表单属性,它加载良好。当在controller中添加新表单并仅将其加载到模板时,我得到的是一个空白页。这是为什么 更新: 下面是我的php错误日志内容Php Symfony 1.4表单未在模板上呈现,php,symfony-1.4,symfony-forms,Php,Symfony 1.4,Symfony Forms,我的symfony 1.4应用程序的表单未在模板上呈现。模板加载正确。没有表单属性,它加载良好。当在controller中添加新表单并仅将其加载到模板时,我得到的是一个空白页。这是为什么 更新: 下面是我的php错误日志内容 Fatal error: Class 'LoginForm' not found in C:\wamp\www\symfony_app\apps\symfony_app\modules\user_login\actions\actions.class.php on line
Fatal error: Class 'LoginForm' not found in C:\wamp\www\symfony_app\apps\symfony_app\modules\user_login\actions\actions.class.php on line 21
PHP Stack trace:
{main}() C:\wamp\www\symfony_app\web\index.php:0
sfContext->dispatch() C:\wamp\www\symfony_app\web\index.php:7
sfFrontWebController->dispatch() C:\wamp\bin\php\php5.5.12\pear\symfony\util\sfContext.class.php:170
sfController->forward() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:2352
sfFilterChain->execute() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:665
sfRenderingFilter->execute() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:1031
sfFilterChain->execute() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:995
sfExecutionFilter->execute() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:1031
sfExecutionFilter->handleAction() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:933
sfExecutionFilter->executeAction() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:947
sfActions->execute() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:952
user_loginActions->executeIndex() C:\wamp\www\symfony_app\cache\symfony_app\prod\config\config_core_compile.yml.php:459
这就是我提出的解决方案。我首先通过扩展symfony基表单创建了一个单独的表单类。当时我的表单不起作用。所以我在控制器的动作方法中添加了表单的属性,而不是在单独的文件中定义它。现在它可以正常工作了
class loginActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/
public function executeIndex(sfWebRequest $request)
{
$this->form = new sfForm();
$this->form->setWidgets(array(
'name' => new sfWidgetFormInputText(),
'password' => new sfWidgetFormInputPassword(),
));
}
}
更新表单类内容:
class LoginForm extends BaseForm
{
public function configure()
{
$this->setWidgets(array(
'name' => new sfWidgetFormInputText(),
'password' => new sfWidgetFormInputPassword(),
));
}
}
现在表单工作了。之前我用url检查过
http://localhost/symfony_app/web/login/index.
这样就不起作用了但我通过
http://localhost/symfony_app/web/symfony_app_dev.php/login/index.
通过此url访问时,它正在工作。您检查过php错误日志吗?听起来好像您已关闭调试。打开它查看错误。感谢所有人的评论。我已经用错误日志内容更新了上面的问题。感谢所有发表评论的人。最后我可以自己解决它。我将在我的帖子中发布答案。通常,最好创建一个扩展sfForm的类,并在配置函数中放置字段和的定义验证器。是的,我知道。以前我是这样做的。但它不起作用。这就是我为什么尝试这样做的原因。@MichalTrojanowski:你知道为什么我不能扩展基表单并获取表单吗?它在我的应用程序中不起作用。我也认为按照你说的那样做更好。Symfony应该自动包含你的类。我不知道你为什么会有这样的问题。你能用表单的定义写下你的文件名吗?它在哪里?它里面的类的名称是什么?也许你打错了。是的,我会的。我的自定义表单在/apps/mymodule/lib/form/LoginForm.class.php里面。我会用里面的代码更新我的问题。所以它是缓存。添加或删除类时需要清除缓存。不。我已禁用缓存。因此它不能像我所想的那样。无论如何,这个问题很好。对我的开发来说不是大问题。如果你能给我帮助的话。