【问题标题】:Zend Framework - Form class not autoloadingZend Framework - 表单类不自动加载
【发布时间】:2011-09-13 16:44:23
【问题描述】:

我明白了

致命错误:在第 XX 行的 /route/to/project/application/controllers/AuthController.php 中找不到类“Form_Login”

在控制器内部实例化 From_Login 类时。 我想引导类没有自动加载表单。 在我的引导文件中,我有这个方法

protected function _initAutoload(){
        $modelLoader = new Zend_Application_Module_Autoloader(array(
                        'namespace' => '',
                        'basePath' => APPLICATION_PATH));
        return $modelLoader;
    }

应该自动加载我的资源。 我使用的是默认项目结构。

-application
 --controllers
 ---Authcontroller.php
 --forms
 ---Login.php

当我使用 zf 工具创建表单时,它会自动将名称设置为 Application_Form_Login 然后我删除了 Application_ 部分,因为我使用的是“”命名空间。我不工作。 我也尝试在 application.ini 文件中设置 appnamespace="" 但什么也没发生

【问题讨论】:

  • 我发现了一个类似的问题(stackoverflow.com/q/1572271/931340),通过使用 Zend_Loader_Autoloader_Resource 然后手动设置路径和命名空间来解决,但它对我不起作用。我检查了文件夹和文件名,它们似乎没问题
  • 一切看起来都不错 - 你的引导程序位于 application/Bootstrap.php,对吗? (可能值得检查正在运行),并且表单类在 application/forms/Login.php 中定义为Form_Login
  • 是的,这就是我问的原因,一切看起来都很好,例如我可以在 models/DbTable/Table.php 中实例化一个表

标签: php zend-framework


【解决方案1】:

在反复尝试了不同的选项后,我感到很累,因为它不起作用,所以我删除了项目文件夹并从头开始使用 zend 工具,然后……瞧,它起作用了! 在我看来,这是 zend 工具和/或 .zfproject.xml 文件的问题,因为我是手动添加一些资源,而另一些是使用 zf 工具添加的。

【讨论】:

  • 肯定有其他因素影响了类加载。 .zfproject.xml 文件只能由 zf 工具读取。该应用程序根本不使用它。很高兴你把它整理好了
【解决方案2】:

使用 Zend 模块化结构并将您的类名 'Form_Login' 更改为 'Default_Form_Login'。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多