2015-05-22 68 views
3

我有一個自定義類,我添加到類Classes文件夾中的invoice.php\App\Classes)。找不到Laravel 5類,使用命名空間

當使用控制器功能時,我無法執行一個靜態函數,說類沒有找到。我有名稱空間並使用像其他類一樣設置,類似於Helpers.php

類:

<?php namespace App\Classes; 

class invoice { 
// 
} 
?> 

位指示:

<?php namespace App\Http\Controllers; 

use App\Classes\invoice; 

class CustomerController extends Controller { 
// 
} 
?> 

錯誤:

FatalErrorException in CustomerController.php line 284: 
Class 'App\Http\Controllers\invoice' not found 

我已經困在這裏了兩個小時,我不明白我是什麼做錯了。作曲家使用psr-4和Helpers.php文件工作正常,但我的自定義類文件沒有。

謝謝

+0

發票中的「i」是您的班級名稱中的小寫字母。應該是大寫字母。 – prograhammer

回答

3

要遵循PSR-4,你需要有你的類名稱首字母大寫。 「我」應該在這裏大寫:

<?php namespace App\Classes; 

class Invoice { 
    // 
} 

還修復您的use以及。然後,當您的控制器使用Invoice時,它將選取用於解析該類的正確名稱空間。目前發生的事情是它在use部分沒有找到匹配的參考,因此它假設它在調用它的控制器類的相同名稱空間中。

+0

我看到我的錯誤,並解決了我的問題,謝謝。 – jason

+0

我有類似的問題,但我的課程名稱是上駱駝案件。我在'app/Classes/InvoiceGenerator'文件夾中有一個'class InvoiceGenerator'類。在我的控制器中,我正在使用'使用App \ Classes \ InvoiceGenerator \ InvoiceGenerator;'任何想法? –