我最近學到了PHP
中的命名空間的概念,只是想在我的Laravel
項目中使用它們。要做到這一點,我決定先測試我學到的東西,創造了在我的控制器中執行以下代碼和我自己創建的自定義類如下:
從laravel中找不到的其他命名空間的類
應用程序\ HTTP \控制器\ HomeController的。 PHP:
<?php
namespace App\Http\Controllers;
use App\Http\Classes\UserTables as userTables;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
//return view('home');
$result = new userTables;
$result->CheckCreate();
}
}
應用程序\ HTTP \控制器\類\ UserTables.class.php:
<?php
namespace App\Http\Classes\
class UserTables
{
public function CheckCreate()
{
$user_id = Auth::user()->id;
$user_name = Auth::user()->name;
$table_name = $user_name . '_' . $user_id;
echo $table_name;
}
}
正如我已經測試過的概念之前,它是本地主機上,而不是在Laravel的身體正常工作,我不知道爲什麼,現在返回的致命錯誤:
FatalErrorException在HomeController.php線27:類 '應用\ HTTP \類\ UserTables' 未找到 1. HomeController.php線27
在使用它之前,我應該包含並導入類文件嗎?如果是這樣,使用名稱空間有什麼好處?
替換的最簡單方法 「的命名空間應用\ HTTP \類\」 與「命名空間應用程序\ HTTP \類;」這應該是它。 – NaeiKinDus
我仍然獲得相同的錯誤! – Tower
您需要重建composer autoload文件。 'composer dump-autoload'。而'namespace App \ Http \ Classes \'應該是'namespace App \ Http \ Classes',沒有斜線。 Laravel使用PSR-4自動加載標準。看到[這裏](http://www.php-fig.org/psr/psr-4/) – Andrew