1. 程式人生 > >laravel 使用use操作符匯入出現指向檔案路徑不對

laravel 使用use操作符匯入出現指向檔案路徑不對

自己寫了一個定時任務,一直執行的好好的,突然就報錯了。去檢查一番,發現其中一個use匯入的類檔案指向的路徑不對。

舉個例子。

在我控制器中use匯入類檔案test,下面是test.php檔案

<?php
namespace App\Tset;
class sqltest{}

然後在控制器檔案中use匯入test

<?php
namespace App\Http\Controllers;
use App\Tset\sqltest;

但是這裡use App\Test\sqltest指向的路徑卻不是test.php檔案。這時候我就想起來一件事,當時我粗心大意,不小心命令了兩個一樣的命令空間一樣的類名。然後我在執行laravel的php artisan命令時,報了以一個警告,這個警告的大致意思就是說,你有兩個一樣的名稱空間一樣的類名。

比如a檔案中的程式碼是

<?php
namespace App\Tset;
class sqltest{}

b檔案中的程式碼也是

<?php
namespace App\Tset;
class sqltest{}

但是呢,a檔案才是這個命令空間我想要的,但是我在執行php artisan命令時,告訴你因為有兩個一樣的,自動幫你指向了B檔案。這時候即便你去刪掉B檔案,use匯入這個類,還是指向的B檔案,會告訴你找不到B檔案了。

出現這種問題,執行composer dump-autoload就能解決了。

composer dump-autoload

這個命令是載入類檔案刪除後,然後新建。想要去看載入類檔案可以去vendor\composer資料夾下檢視。autoload_classmap.php就是命令空間的載入檔案啦,還有其他的,各種的都在vendor\composer,可以自己慢慢研究。

程式設計的時候一定要細心,不要再像我這樣犯這種基礎錯誤了0.0