您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何修改Laravel自帶認證系統的User類命名空間”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何修改Laravel自帶認證系統的User類命名空間”這篇文章吧。
剛創建了一個新的Laravel 5.3項目,想要使用Laravel自帶的認證功能。
但是我們都知道,Laravel默認情況下的Model都是放在app目錄下的,也就是說其命名空間是App.但是有時候我們希望app目錄能夠更加整潔一點,所以想要把各個Model都統一放在Model目錄下。
由于Laravel的app目錄遵循了psr-4標準,也就是說會是用composer按照psr-4標準對各個類進行自動加載。如果我們直接修改目錄,而不修改對應的命名空間的話,是無法正常加載這些Model類的。
所以,將User.php文件移動到了新的Model文件夾下的時候,需要同時將User類的namespace修改為App\Model。然后,需要執行
composer dumpautoload
命令,將修改后的類自動加載進來。
接著繼續進行認證系統的創建。
在執行了
php artisan make:auth
命令之后,在正常情況下,已經可以實現正常的注冊、登錄等功能了。
但是在修改完User的命名空間后,會發現出現了找不到User類的錯誤。我們剛才已經重新加載了User類,為什么還會出現找不到的問題?
仔細想想我們就會發現,由于登錄、注冊用到的代碼都是Laravel框架自帶的,默認情況下,它們會認為User類還在App命名空間下,所以登錄的時候,會出現錯誤。
如何解決呢?
在config/auth.php文件里,可以找到providers,在其中driver是eloquent的那一組中,可以看到model選項,默認為App\User::class,將其修改為App\Model\User::class即可。
這樣應該就可以正常登錄了。
所以總結一下,如果想要修改User的命名空間的話,需要以下幾步:
新建Model文件夾,移動User.php到該文件夾下
修改User.php的namespace為App\Model
執行composer dumpautoload,重新加載類
將config/auth.php文件中的providers部分的model對應的類,修改為App\Model\User::class
以上是“如何修改Laravel自帶認證系統的User類命名空間”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。