新聞中心
這篇文章主要為大家展示了“如何修改Laravel自帶認(rèn)證系統(tǒng)的User類命名空間”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何修改Laravel自帶認(rèn)證系統(tǒng)的User類命名空間”這篇文章吧。
剛創(chuàng)建了一個(gè)新的Laravel 5.3項(xiàng)目,想要使用Laravel自帶的認(rèn)證功能。
但是我們都知道,Laravel默認(rèn)情況下的Model都是放在app目錄下的,也就是說(shuō)其命名空間是App.但是有時(shí)候我們希望app目錄能夠更加整潔一點(diǎn),所以想要把各個(gè)Model都統(tǒng)一放在Model目錄下。
由于Laravel的app目錄遵循了psr-4標(biāo)準(zhǔn),也就是說(shuō)會(huì)是用composer按照psr-4標(biāo)準(zhǔn)對(duì)各個(gè)類進(jìn)行自動(dòng)加載。如果我們直接修改目錄,而不修改對(duì)應(yīng)的命名空間的話,是無(wú)法正常加載這些Model類的。
所以,將User.php文件移動(dòng)到了新的Model文件夾下的時(shí)候,需要同時(shí)將User類的namespace修改為App\Model。然后,需要執(zhí)行
composer dumpautoload
命令,將修改后的類自動(dòng)加載進(jìn)來(lái)。
接著繼續(xù)進(jìn)行認(rèn)證系統(tǒng)的創(chuàng)建。
在執(zhí)行了
php artisan make:auth
命令之后,在正常情況下,已經(jīng)可以實(shí)現(xiàn)正常的注冊(cè)、登錄等功能了。
但是在修改完User的命名空間后,會(huì)發(fā)現(xiàn)出現(xiàn)了找不到User類的錯(cuò)誤。我們剛才已經(jīng)重新加載了User類,為什么還會(huì)出現(xiàn)找不到的問(wèn)題?
仔細(xì)想想我們就會(huì)發(fā)現(xiàn),由于登錄、注冊(cè)用到的代碼都是Laravel框架自帶的,默認(rèn)情況下,它們會(huì)認(rèn)為User類還在App命名空間下,所以登錄的時(shí)候,會(huì)出現(xiàn)錯(cuò)誤。
如何解決呢?
在config/auth.php文件里,可以找到providers,在其中driver是eloquent的那一組中,可以看到model選項(xiàng),默認(rèn)為App\User::class,將其修改為App\Model\User::class即可。
這樣應(yīng)該就可以正常登錄了。
所以總結(jié)一下,如果想要修改User的命名空間的話,需要以下幾步:
新建Model文件夾,移動(dòng)User.php到該文件夾下
修改User.php的namespace為App\Model
執(zhí)行composer dumpautoload,重新加載類
將config/auth.php文件中的providers部分的model對(duì)應(yīng)的類,修改為App\Model\User::class
以上是“如何修改Laravel自帶認(rèn)證系統(tǒng)的User類命名空間”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章名稱:如何修改Laravel自帶認(rèn)證系統(tǒng)的User類命名空間-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.ef60e0e.cn/article/ipgjh.html