亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當 Laravel 中的自定義類位于子文件夾中時,如何使用它?

當 Laravel 中的自定義類位于子文件夾中時,如何使用它?

PHP
慕尼黑的夜晚無繁華 2023-10-15 17:03:39
在我的新 Laravel 應用程序中,我添加了兩個自定義類。當我在控制器中使用它時,一個加載正常,但另一個位于另一個文件夾中,無法工作。我將調用的工作類Working位于 中app\Classes,它具有命名空間namespace App\Classes,并且在控制器中我用 來調用它use App\Classes\Working。我將其稱為非工人階級,NonWorking位于app\Classes\NonWorking。我嘗試給它命名空間namespace App\Classes和namespace App\Classes\NonWorking. 從控制器中,我嘗試使用use App\Classes\NonWorkingand調用它use App\Classes\NonWorking\NonWorking,但收到錯誤Class 'App\Classes\NonWorking' not foundor Class 'App\Classes\NonWorking\NonWorking' not found。我已經能夠通過將 NonWorking 類移至與工作類相同的文件夾并將命名空間設置為 來使其正確運行namespace App\Classes,但 NonWorking 類來自另一個存儲庫,應該位于其自己的文件夾中,因為它不會來自另一個倉庫的唯一一個。那么,我如何讓 Laravel 了解這個類在哪里呢?
查看完整描述

2 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

Laravel 使用PSR-4 自動加載。這基本上意味著您的類應該遵循文件夾結構。

所以如果你有類app/Classes,它們應該有命名空間App\Classes。

因此,該文件app/Classes/Working.php將在其頂部namespace App\Classes;并將其導入到另一個文件中,您可以在另一個文件中寫入use App\Classes\Working;

如果你里面有一個類app/Classes/SubFolder,它應該有命名空間所以這里是文件中的namespace App\Classes\SubFolder;?一個類:AmazingClassapp/Classes/SubFolder/AmazingClass.php

// app/Classes/SubFolder/AmazingClass.php


namespace App\Classes\SubFolder;


class AmazingClass

{

? ? //

}

讓我們AmazingClass在另一個類中使用。


// Some file in another namespace


namespace App\My\Random;


use App\Classes\SubFolder\AmazingClass;


// Rest of the file

另外:每當您添加一個新類并且無法使用它時,它很可能沒有自動加載。運行命令


composer dump-autoload

重新自動加載類。


查看完整回答
反對 回復 2023-10-15
?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

要解決您的問題,只需在 App 文件夾中創建文件夾和類并運行命令:

composer dump-autoload

他們加載您創建的所有類


查看完整回答
反對 回復 2023-10-15
  • 2 回答
  • 0 關注
  • 148 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號