下面由Laravel教程欄目給大家介紹laravel8更新之路由調(diào)整,希望對(duì)大家有所幫助!
在Laravel的早期版本中,RouteServiceProvider包含一個(gè)$namespace屬性。該屬性的值將自動(dòng)添加到控制器路由定義和對(duì)actionhelper /方法的調(diào)用之前。
在Laravel 8.x中,默認(rèn)情況下為此屬性。這意味著Laravel不會(huì)自動(dòng)命名空間前綴。因此,在新的Laravel 8.x應(yīng)用程序中,應(yīng)使用標(biāo)準(zhǔn)的PHP可調(diào)用語(yǔ)法定義控制器路由定義:URL::actionnull
被注釋掉了。
所以在laravel8中加載路由需要加上命名空間,如下。
use AppHttpControllersAdminAdminController; Route::get('/admin', [AdminController::class, 'index']);
或者也可以
use AppHttpControllersAdmin; # 注:這里第二個(gè)參數(shù)是數(shù)組 Route::get('/admin', [AdminAdminController::class, 'index']);
如果是資源路由,則要:
# 注意這里第二個(gè)參數(shù)是類,字符串,不要傳數(shù)組 Route::resource('/admin', AdminAdminController::class);
對(duì)action相關(guān)方法的調(diào)用應(yīng)使用相同的可調(diào)用語(yǔ)法:
action([AdminAdminController::class, 'index']); return Redirect::action([AdminAdminController::class, 'index']);
注意
如果您更喜歡Laravel 7.x樣式控制器的路由前綴,則可以簡(jiǎn)單地將$namespace屬性添加到應(yīng)用程序的中RouteServiceProvider。
路徑為:
app/Providers/RouteServiceProvider.php
找到該文件,將被注釋的一行代碼取消注釋即可使用之前版本的自動(dòng)載入命名空間的寫(xiě)法。29行
// protected $namespace = 'App\Http\Controllers';
推薦學(xué)習(xí):《laravel視頻教程》