2014-09-11 71 views
3

我正在使用「laravel/framework」:「4.2。*」版本,我想爲我的項目使用模塊系統。我遵循this document中提供的說明。爲什麼我在Laravel模塊中找到「class not found」錯誤?

我可以使用以下命令創建模塊:php artisan modules:create module_name。我在我的app目錄中創建了一個管理模塊,並且已經創建了該模塊的目錄結構。

我從管理模塊控制器的動作中的一個使用DB::select('some SQL statement'),但它給我以下錯誤:

Class 'App\Modules\Admin\Controllers\DB' not found.

爲什麼無法找到這個類?

+0

使用自動加載'使用照亮的\ Support \外立面\ DB;' – 2017-02-23 14:22:43

回答

13

當使用DB或根名稱空間之外的任何其他Laravel外觀時,需要確保實際在根名稱空間中使用該類。你可以在課前加一個\

\DB::select(...) 

或者您可以使用在類文件的use關鍵字,允許使用不同的命名空間中的類沒有在每次使用它的時候明確寫出命名空間。

<?php namespace App\Modules\Admin\Controllers; 

use DB; 
use BaseController; 

class ModuleController extends BaseController { 

    public function index() 
    { 
     // This will now use the correct facade 
     $data = DB::select(...); 
    } 
} 

注意,use關鍵字總是假定它加載從根命名空間的命名空間。因此,對於use,始終需要完全限定的名稱空間。

0

否則你可以在composer.json

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php" 
    ] 
}, 
+0

您可以使用phpstorm IDE的編輯器,這將有助於它會照顧。這真的很有幫助。請嘗試使用它。 – Ramesh 2016-04-28 06:59:53

相關問題