2016-07-23 70 views
0

我试图通过将模型和控制器放在子目录中来更好地组织我的应用程序。我认为这并不重要,只要命名空间是正确的,他们是否在子目录中,但现在我已经移动它们,我得到一个类未找到错误。Laravel 5:未找到子目录中的组织模型

我试过几次运行composer dumpautoload,但它仍然无法正常工作。

这里是我的目录结构:

  • 应用
  • 模型
    • 经理
      • EntryStructure.php
      • FieldManager.php
  • 控制器
    • EntryControllers.php

既然我已经做了新的目录经理和感动在里面这两个模型,当我引用FieldManager类从EntryStructure,我收到未找到的错误。

守则EntryStructure.php:

namespace Pascall\ICMS\Models; 

use Pascall\ICMS\Models\FieldManager; 

class EntryStructure 
    { 
    function index(){ 
     new FieldManager(); // class not found 
    } 
    } 

守则FieldManager.php:

namespace Pascall\ICMS\Models; 

class FieldManager { 
    //  
} 

为什么没有找到FieldManager类时,它在use声明中明确提到,他们分享相同的命名空间?

回答

0

如果您的车型目录遵循PSR-4规格,既你的类的命名应遵循的类文件的路径,所以它应该是:

namespace Pascall\ICMS\Models\Managers; 

然后,在EntryStructure类,你应该使用:

use Pascall\ICMS\Models\Managers\FieldManager; 
0

你的使用应该是
use Pascall\ICMS\Models\Managers\FieldManager;
代替
use Pascall\ICMS\Models\FieldManager;