1

这可能是一个错字,但我看不到它......它让我发疯!

我的结构是:

捆绑:/Symfony24/src/NRtworks/ChartOfAccountsBundle

我的表格:/Symfony24/src/NRtworks/ChartOfAccountsBundle/Form/Account_fastedit_form.php

控制器是这样的:

<?php

namespace NRtworks\ChartOfAccountsBundle\Controller;
//form loading
use NRtworks\ChartOfAccountsBundle\Form\Account_fastedit_form;
use NRtworks\SubscriptionBundle\Form\NewCustomer;

class ChartOfAccountsController extends Controller
{
   public function indexAction()
   {
       new NewCustomer();
       new Account_fastedit_form();
   }

}

?>

我在 Form/Account_fastedit_form.php 中的表单类

<?php

namespace NRtworks\ChartOfAccountsBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class Account_fastedit_form extends AbstractType
{
    //whatever
}
?>

然后我得到:

ClassNotFoundException: Attempted to load class "Account_fastedit_form" from namespace "NRtworks\ChartOfAccountsBundle\Form" in /home/eagle1/www/Symfony24/src/NRtworks/ChartOfAccountsBundle/Controller/ChartOfAccountsController.php line 72. Do you need to "use" it from another namespace?

我没有发现我的错误。ps:如您所见,我可以在另一个捆绑包中使用我的表单NewCustomer,没有任何问题,并且结构相似......

4

1 回答 1

0

我在这里进行了测试,我可以确认 Symfony 不喜欢你的类名中有下划线这一事实。

将类更改为AccountFasteditForm,包含该类的文件AccountFasteditForm.php并更新您的use语句。它应该工作。

编辑

寻找有关此的一些信息,我怀疑它与PSR-0有关。你会在文档中找到:

CLASS NAME 中的每个 _ 字符都转换为 DIRECTORY_SEPARATOR。_ 字符在命名空间中没有特殊含义。

暗示这_在命名空间中很好,但在类名中则不然。

我还在 Symfony 文档中找到了类名必须是驼峰式的参考(再次暗示带下划线的命名空间很好)

这是一个类似的SO问题

于 2014-04-09T17:03:46.823 回答