不能"使用" symfony2.4中的一个表单

时间:2014-04-09 16:11:50

标签: php namespaces symfony-2.4

这可能是一个错字但我无法看到它......它让我发疯了!

我的结构是:

Bundle:/ 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,在另一个包中没有任何问题,结构类似......

1 个答案:

答案 0 :(得分:0)

我在这里测试了这个,我可以确认Symfony不喜欢你在课堂名称中强调的事实。

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

修改

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

  

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

暗示_在名称空间中很好,但在类名中不是

我还在Symfony文档中找到了类名必须是camel-case的引用(再次暗示强调的命名空间很好)

Here is a similar SO question