3 回答

TA貢獻1796條經驗 獲得超4個贊
使用
<a class="nav-link" href="/admin/dashboard">
只能解決您的路由問題,但不能解決它。
如果你按照上面的鏈接,它可以讓你獲得正確的視圖,而 Laravel 不會拋出任何錯誤,那么你離解決路線問題又近了一步。這意味著存在具有該前端名稱的路由。但是,根據我下面的解釋,您會發現服務器端名稱是admin.dashboardadmin.dashboard。
所以,讓我們開始解決問題。
該as鍵不替代路線的名字,它結合了他們。因此,只使用其中一種方法 -內部路由定義中的as鍵或->name()方法。
我正在 Laravel 5.8 上用我自己的機器對此進行測試,并且可以確認您可以在代碼中同時使用兩者。但是,您的代碼中路由的名稱是 - admin.dashboardadmin.dashboard - 令人驚訝。
以下任一路由定義都可以解決問題:
//beneath is the route that can work both for auth and non auth for admin/
Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {
Route::group(['middleware' => 'auth'], function () {
Route::get('dashboard', ['as' => 'dashboard', 'uses' => 'Admin\DashboardController@index']);
Route::resource('slider', 'Admin\SliderController');
});
});
或者
//beneath is the route that can work both for auth and non auth for admin/
Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {
Route::group(['middleware' => 'auth'], function () {
Route::get('dashboard', ['uses' => 'Admin\DashboardController@index'])->name('dashboard');
Route::resource('slider', 'Admin\SliderController');
});
});
無論哪種方式,生成的前端鏈接都應該是
admin/dashboard
而訪問鏈接的服務器端路由是
route('admin.dashboard')
html 應該是:
<li class="{{ Request::is('admin/dashboard*')? 'active':''}} ">
<a class="nav-link" href="{{route('admin.dashboard')}}">
<i class="material-icons">dashboard</i>
<p>Dashboard</p>
</a>
</li>
注意:不要通過將生成的路由鏈接直接放入瀏覽器地址欄來測試它們。將它們放在一個鏈接中href,瀏覽器將絕對或相對地解析它們 - 取決于鏈接類型。

TA貢獻1796條經驗 獲得超10個贊
你必須在 Laravel 中的內部鏈接的“href”中的路由之前添加一個“/”?;旧夏悴恍枰凇癶ref”中調用“route”方法,因為 Laravel 會自動確定它是哪條路由。嘗試這個:
<a class="nav-link" href="/admin/dashboard">

TA貢獻1887條經驗 獲得超5個贊
路由助手接受路由的名稱,試試這個:
href="{{ route('admin.dashboard') }}
https://laravel.com/docs/5.8/helpers#method-route
- 3 回答
- 0 關注
- 179 瀏覽
添加回答
舉報